c++复习——临考前的女娲补天 >=.<

一些零零散散的知识点...

1.抽象类只能作为其他类的基类,不能建立对象,但抽象类的派生类如果给出纯虚函数的函数体,这个派生类仍然是一个抽象类。//这个好理解 懂了

2.抽象类不能作为参数类型,函数的返回类型或者显式转化的类型。//不懂,先存着。

3.C++要求对一般的内置函数要用关键字inline声明,但对类内定义的成员函数,可以省略inline,因为这些成员函数已被隐含地指定为内置函数,在类外定义时加inline,则为内置函数。//内置函数是啥?先不管了

4.子对象:在定义一个新类时,可以把一个已经定义的的对象作为该类的数据成员,这个类的对象被称为子对象。

e.g.:子对象不能是自身类的对象。//都在定义自己了,哪来的自身的子对象。。

e.g.:静态成员只可用类名加作用域运算符来引用,不可用对象引用。(X)//是可以用对象名调用的,只是会使人误以为静态成员属于某个对象,所以不建议。

5.若PAT是一个类,则程序运行时,语句“PAT (*ad)[3];”调用PAT的构造函数的次数是(0)。

PAT (*ad)[3]:声明一个指向3个PAT类型的对象的指针,声明的是指针,并没有新的对象生成,所以构造函数调用的次数为0;

PAT * ad[3]:声明3个指针,每个指针都是指向一个PAT类型的对象,也是没有的新的对象产生,所以构造函数的调用次数为0。

but:PAT ad[3]:声明了一个数组,数组里又三个Pat元素,这三个元素是真是存在的,所以一定会调用默认的构造函数为其分配空间。//所以就是三次

6.void Set(A& a);是类A中一个成员函数的说明,其中A &a的含义是//类A的对象引用a作为该函数的参数

7.静态成员函数不可以说明为虚函数//调用静态成员函数不需要实例,但调用虚函数但调用虚函数需要从一个实例中指向虚函数表的指针以得到函数的地址,因此调用虚函数需要一个实例。两者相互矛盾。

8.派生类构造函数的成员初始化列表中,包含:(1)基类数据成员初始化(2) 派生类的子对象初始化(3)派生类自身数据成员初始化

但没有!基类子对象初始化(基类的子对象已经成为了基类的数据成员,在基类数据成员的初始化里,别的数据成员怎么初始化,它就怎么初始化)

9.基类和派生类中同时出现同名成员时,会产生二义性(XXXXX )首先明确!二义性全称:多重继承的二义性

如果只是单继承,派生类和基类同名,子类的函数会覆盖基类的函数(或者说把基类隐藏了)

10.静态成员也能被继承!!!! ---->https://blog.csdn.net/herostarone/article/details/7330981/

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。