C++ 总结

2018-06-21  本文已影响0人  坏水强

1.函数重载是为了实现 虚函数的副产品,函数重载引进了操作符重载,但也引入了工程函数的歧义性。

反例:定义了fun(double)和fun(float),当我们调用fun(int)会出现歧义。

2.构造函数的初始化 尽量使用初始化列表,这样做的目的是在构造之前初始化成员,如果定义在结构体中,只能在调用构造函数时初始化成员。

两种情况下必须使用初始化列表:

1)const成员

2)子类的父类没有默认的构造函数,子类在构造构造 必须先通过初始化列表构造父函数。

3.多态的基础是容器。虚函数的目的 是为了实现多态,多态是因,虚函数是果。

面向对象的 程序设计方法需要多态,但并不需要虚函数,虚函数只是C++语言中特有的方法。

面向对象 需要对象的概念,但并不需要类,所以有的程序语言并没有类的概念。

4.函数传递对象参数时,需要传递引用,而不是传值,这是因为在对象传值过程中,会调用拷贝构造函数,效率比较低。

拷贝构造函数的参数必须是引用,如果是传值传参会造成无穷调用拷贝构造函数。

5.组合是包含一个对象,而聚合是包含一个类指针。组合控制生死,聚合不控制,就是拿过来用一下。

从耦合性上讲 继承>组合>聚合,我们在编写代码时总是希望弱耦合,所以尽量选择聚合和组合。继承主要针对抽象类,继承接口。

6.对象决定虚函数,类决定非虚函数。

7.析构函数尽量选择虚函数,虚析构函数具有特殊的性质,即调用虚析构函数时会先调用父虚构函数。

上一篇下一篇

猜你喜欢

热点阅读