C++是在C语言基础上为支持面向对象程序设计而研制的一个通用程序设计语言。

第一个程序

#include using namespace std;int main(void){    cout << "hello word";                   // 打印输出不换行    cout << "hello word" << endl;           // 不加这条语句using namespace std;会报错    std::cout << "hello word" << std::endl; // 这种打印输出的方式,不需要加using namespace std;    return 0;}int a = 3;double b = 4.0;
  • #include C++的头文件,这些头文件包括了程序中必须的或有用的相关信息。注:不需要加.h
  • using namespace std;告诉编译器使用std命名空间,命名空间是C++中的一个概念
  • cout << "hello word"; 打印输出不换行
  • cout << "hello word" << endl;打印输出(自动换行)
  • 在C++中,cout是一个输出流对象,用于向标准输出设备(通常是屏幕)输出数据。在输出数据时,我们需要使用插入运算符 << 将要输出的数据插入到cout对象中。endl是一个控制符,用于输出一个换行符并刷新输出缓冲区。如果需要在输出字符串后换行并刷新输出缓冲区,可以在字符串后面使用endl
  • endl:end of line

main()函数的变体

int main(void){}  // void不写也行int main(){} int main(int agrc, const char* argv[]){}

常用关键字和标识符

C++语言字符分为6类:标识符、关键字、运算符、分隔符、常量、注释符

常用关键字

关键字含义
bool布尔类型
char字符类型
int long short整型、长整型、短整型
float double单精度、双精度浮点数
class struct union enum类、结构、联合体、枚举
const常量
unsigned 、signed无符号、有符号整型
void函数不返回值,或无类型指针
static静态变量或函数
extern外部变量
private protected public私有、保护、公有成员
friend友元函数
virtual虚函数
template模板
namespace命名空间
typedef类型别名
inline内联函数

语句定义符号

关键字含义
sizeof类型大小
new delete创建、释放对象
continue略过本次循环、进入下一个循环
throw抛出一个异常
try执行一段可能抛出异常的代码
catch处理抛出的异常
static_cast、const_cast、dynamic_cast、reinterpret_cast类型转换
this当前指针
false、true布尔假、布尔真

预处理命令

指令名称功能
##连字符
#error在编译过程中显示一条错误
#line设置行和文件信息
#pragma执行一条编译指令
#undef取消一个未定义变量

数据类型

#include using namespace std;int main(void){    cout << "bool的字节大小:" << sizeof(bool) << endl;    cout << "char的字节大小:" << sizeof(char) << endl;    cout << "int的字节大小:" << sizeof(int) << endl;    return 0;}

基本数据类型:1个字节8位(1111 1111), 2 8 = 256 2^8 = 256 28=256

  • char:一个字节,表示字符或小整数
    数据在内存中的存储:
    所有数据在计算机中存储时,都是以字节(byte)为基本单位的,字节是计算机存储空间的最小计量单位,1个字节为8bit

常量与转义字符

String是C++专有的数据常量

#include using namespace std;int main(void){    string strA = "";    string strB = "A";    string strAC = "ABC";    string strD = "我爱C++";    cout << "strA=" << strA << "strB=" << strB << endl;    return 0;}

符号常量:const
符号常量在声明时一定要赋初值,在程序中不能改变其值。
在声明变量时,可以一次声明多个变量。

const  int A = 1; // const 数据类型 常量名 = 常量值; int const A = 1; // 数据类型 const 常量名 = 常量值;int A = 10,B=20;  // 一次声明多个变量

运算符优先级

从左到右
() [] -> . :: ++ –

自动转换与强制转换

自动转换规则:小类型总是被提升为大类型,从而减小精度损失。
强制转换:

(float) a; // 把a转换为float类型(int) (x+y); // 把x+y的结果转换为整型

C++特有的类型转换

  • static_cast 静态类型转换
  • reinterpret_cast 重新解释类型转换
  • dynamic_cast 子类和父类之间的多态类型转换,动态类型转换
  • const_cast 去掉const属性转换
    一般结论:在C语言中能进行隐式转换的,在C++中,可用static_cast()进行类型转换。
    在C语言中不能进行隐式类型转换的,在C++中可以用reinterpret_cast()进行强制转换。