1.思考一下,为头文件中定义内联函数,为什么不会出现重复包含的问题,这个原因就在,内联函数并不是调用,只是在哪用到就在哪原样展开,故不会发生重复包含的问题。
2.构造函数与析构函数没有返回值,且构造函数一般不做初始化以外的事情,析构函数一般不做释放内存以外的事情
3.如果一个类的数据成员是另一个类的对象,那么这个对象的初始化只能用初始化列表进行初始化。
4.调用拷贝构造函数的三种情况:
1.由一个对象初始化另一个对象时。
2.当对象作为函数实参传递给函数形参时。
3.当对象作为函数返回值,创建 一个临时对象。
5.常对象只能调用常成员函数,普通对象即可以调用普通成员函数,又可以调用常成员函数。
6.在类中定义void print(); void print()const;不会发生冲突,普通成员会先匹配void print();再匹配void printf()const;常成员函数只能匹配void print()const;
7.在类的多文件实现中,应该将静态数据成员的初始化放在类的内部实现文件中(.cpp),而不能放在声明头文件中(.h);
8.派生类构造函数顺序:
1.任何虚拟基类的构造 函数按照 它们被继承的顺序构造
2.任何非虚拟基类的构造函数按照它们被继承的顺序构造。
3.子对象的构造 函数,按派生类定义先后顺序。
4.派生类的构造函数。
9.派生类构造函数注意的问题:
在多层次派生类构造函数的初始化列表的基类部分表达式般只涉及直接基类和新增派生类数据成员的初始化。
10如果有一种情况,希望基类的私有民员只能在派生类中被直接方问,而不希望这种直接访问的属性从派生类向下一层的派生类中延续,则在基类定义中,将派生的类声明为基类的友元。
10.虚函数必须是类的成员函数,但不能是静态函数,一个非成员的外部函数是不能定义为虚函数,即使它是某个类的友元。
11.动态联编两个特点:1.指针与引用。2.虚函数。
c++理论细节
最新推荐文章于 2021-07-23 16:56:40 发布