Featured image of post C++初识

C++初识

初识C++

文档

离线浏览文档 - cppreference.cn - C++参考手册

image-20260404204754007

如果打开后查看不了里面的内容,可以通过以下的方式解决:

找到这个 CHM 文件(比如 cppreference.chmC_C++参考文档.chm

右键文件 → 属性

在「常规」选项卡最下方,找到安全提示:「此文件来自其他计算机,可能被阻止以帮助保护该计算机」

勾选 「解除锁定」(如果没有这个选项,直接跳过这步)

点击「应用」→「确定」,再重新双击打开文件

image-20260404204923226

头文件

1
#include <iostream>

C++ 的头文件的功能、预处理原理都与 C 语言无异,下面罗列它们不同与联系:

  1. C++ 的标准头文件无需后缀。
  2. C++ 可以接受 C 语言风格后缀的头文件(如#include <math.h>),但如有可能,要优先使用 C++ 版本的头文件(如#include <cmath>),两者的内容基本是一样的,但后者中的标识符在标准名字空间 std 中均有声明(除了宏之外)。
  3. C++ 也接受新风格后缀(如\*.hpp)。
1
2
3
4
#include <iostream> 	// c++标准头文件
#include <cmath> 		// 在标准名字空间做了声明的改进版math.h
#include <unistd.h> 	// 无cunistd版头文件
#include <head.hpp> 	// *.hpp后缀头文件

名字空间

1
using namespace std;

上述语句是 C 语言没有的,其含义是使用名字空间 std 中的所有标识符。这里的名字空间是 C++ 引入的一个新概念。名字空间本质上是自定义的作用域目的是尽可能防止符号命名冲突

比如,在名字空间 std 中,有如下符号:

  • cout
  • cin
  • cerr
  • string

由于这些符号(变量、函数、对象)是名字空间 std 中被声明的,因此它们的实际名称应该是:

  • std::cout
  • std::cin
  • std::cerr
  • std::string

在写程序时,使用什么就引入使用的标识符,未使用的标识符不用引用,为了降低标识符的冲突问题。

标准流对象

标准流对象,指的是cout、cin和cerr

所谓对象,本质上就是C语言语境中的变量,只不过在面向对象(一般包括两个方面一个属性和行为)的语境中,这些变量都是自带函数(行为)的,它们是名副其实的超级变量,因此为了与C语言的 普通变量加以区分,在面向对象的编程语言中,通常将它们称为对象。

标准输入

1
2
3
4
int a;
double f;
cin >> a;	// 从键盘接收一个整型数据放入变量a中
cin >> f;	// 从键盘接收一个浮点型数据放入变量f中

使用流对象的优势在于,不需要关心操作数据的类型,流对象会自动识别不同的数据类型,也可以一次性快速处理,也可以写为

1
cin >> a >> f;

一次写入多种类型的数据

标准输出

1
2
cout << 3.14;	//输出浮点型数据
cout << "abc";	//输出字符串数据

这么写的数据不会立刻刷新,与C语言的输出一样,先经过缓冲区,需要满足输出的条件才可以。

  1. 一行写满或者遇到’\n’换行符。
  2. 缓冲区满
  3. 程序结束
  4. 手动刷新
1
2
cout << "Hello world \n";
cout << "Hello world" << '\n';

在C++可以通过使用std中的endl

1
cout << "Hellow word" << endl;

标准出错

1
cerr << "hellow" ;		//可以直接输出

cerr的用法与cout是一样的,区别是cerr输出的时候不经过缓冲区直接输出,而cout需要经过行缓冲区。

1
2
fprintf( stdout , .... ); // 经过标准输出的缓冲区
fprintf( stderr , .... ); // 标准出错没有设置用户缓冲区

C++编译

使用对应的g++编译器

最后更新于 2026-04-06 10:39
...