-
在整个继承结构中,直接或间接继承虚基类的所有派生类,都必须在构造函数的成员初始化列表中给出对虚基类的构造函数的调用。但是, 在建立对象时,只有最远派生类的构造函数调用虚基类的构造函数
-
cout()调用在函数调用之后
-
setiosflags(ios::fixed)是用定点方式表示实数。使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。如果如果setprecision(n)与setiosnags(ios::scientific)合用, 可以控制指数表示法的小数位数。
setiosflags(ios::scientific)是用指数方式表示实数。 -
动态多态给定一个基函数的指针,是不确定的对象,调用基函数会调用给指针赋值的对象的重写函数;如果创建一个确定的对象,调用虚函数会直接调用虚函数里的内容,便不是多态。
-
函数调用通过函数名,所以返回值不能作为函数重载的依据
-
抽象类没有对象,只有指针
-
return *this返回的是当前对象的克隆或者本身(若返回类型为A, 则是克隆, 若返回类型为A&, 则是本身 )。return this返回当前对象的地址(指向当前对象的指针)
-
auto声明的数据可以被任何非空类型的数据,表达式和函数初始化,且必须初始化,auto不能作为数组的类型声明,也不可以在形参列表中使用。
-
所有函数存放在独立于对象的存储空间内,且所有对象共用这个空间。对象调用函数时,对静态成员函数直接调用不存在问题,对成员函数需要把自己以this指针传给函数以指明以哪个对象调用;对虚函数而言,虚函数有一个虚函数表,每个类对象中有一个虚函数指针指向这个虚函数表,通过虚函数表来调用相应的虚函数,所以也需要用this指针指明对象。所以用未初始化的指针调用静态成员函数、或者调用未使用任何成员变量的成员函数(即未用到this指针)都是可以的。而调用虚函数和调用使用成员变量的成员函数便不可以。
-
cin,cout重载返回的是该对象的引用, 因为在函数内部输入输出会发生流动,需要记录这一变化,确定是不变的对象
-
拷贝构造函数,析构函数,赋值运算符重写一般同时进行