面向过程:
endl对比\n的区别:会刷新缓冲区
C++有面向对象开发的四大特性:封装,抽象,继承,多态
注释:// /* */
类型&关键字:布尔型bool 字符型char 整型int 浮点型float 双浮点型double 无类型void
变量作用域:在函数或一个代码块内部声明的变量,称为局部变量,只在函数或块内适用
在函数参数的定义中声明的变量,称为形式参数,只在函数内适用
在所有函数外部声明的变量,称为全局变量,全局适用
数据类型修饰符:signed unsigned long short
存储类:auto自动推断 register寄存器 static静态变量 extern引用其他程序文件中的变量 mutable适用于类对象允许对象的成员替代常量 thread_local (C++11)线程里访问
算术运算符:+ - * / % ++ --
关系运算符:== != > < >= <=
逻辑运算符:&& || !
位运算符:& | ^ ~ << >>
赋值运算符:= += -= *= /= %= <<= >>= &= ^= |=
杂项运算符:sizeof ?: . -> Cast & *
循环:while for do…while break continue goto
判断:switch ?: if..else if..else
函数的所有组成部分:返回类型,函数名称,函数参数,函数主体
函数参数的调用:传值调用,指针调用,引用调用
数学运算:cos sin tan log pow hypot sqrt abs fabs floor
随机数:time() 函数来获取系统时间的秒数,srand() 函数生成种子,rand() 函数来生成随机数
数组VS字符串,指针VS引用,struct&typedef
面向对象:
类成员函数:那些把定义和原型写在类定义内部的函数,就像类定义中的其他变量一样。
类访问修饰符:类成员可以被定义为 public、private 或 protected。默认为private。
构造函数&析构函数:构造函数在创建一个新的对象时调用。析构函数在删除所创建的对象时调用。
拷贝构造函数:它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。
友元函数:类的友元函数是定义在类外部,但有权访问类的所有私有成员和保护成员。尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数(重点!!!)。
友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元。
如果要声明函数为一个类的友元,需要在类定义中该函数原型前使用关键字 friend内联函数:通过内联函数,编译器试图在调用函数的地方扩展函数体中的代码,以空间换时间,就是函数前加inline,类定义中的定义的函数默认都是内联函数。
this 指针:每个对象都有一个特殊的指针this,它指向对象本身。
指向类的指针:方式如同指向结构的指针。实际上,类可以看成是一个带有函数的结构。
类的静态成员:类的数据成员和函数成员都可以被声明为静态的,这意味着无论创建多少个类的对象,静态成员都只有一个副本。静态成员在类的所有对象中是共享的。如果不存在其他的初始化语句,在创建第一个对象时,所有的静态数据都会被初始化为零。我们不能把静态成员的初始化放置在类的定义中,但是可以在类的外部通过使用范围解析运算符 :: 来重新声明静态变量从而对它进行初始化
继承:除基类的构造函数、析构函数和拷贝构造函数,基类的重载运算符,基类的友元函数外,派生类继承了所有的基类方法
类成员访问控制public:同一类,派生类,外部类可访问
类成员访问控制protected:同一类,派生类可访问
类成员访问控制private:同一类可访问
类公有继承(public):基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员。
类保护继承(protected):基类的公有和保护成员将成为派生类的保护成员。
类私有继承(private):基类的公有和保护成员将成为派生类的私有成员。
以上三种继承中,基类的私有成员都不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问
重载函数:功能类似的同名函数的形式参数(个数、类型或者顺序)不同,调用时根据传入参数不同而调用不同的函数
重载运算符:重载符所属类 operator符(const 后接类& 引用名)
多态:类方法声明前放置关键字virtual,让不同派生类有相同的方法
封装:公有成员是对外的接口,用户需要知道它们以便使用类。私有成员对外隐藏
接口(抽象类):基类中定义一个virtual纯虚函数在派生类中再实现