您的位置:首页 > 编程语言 > C语言/C++

C/C++ 知识回顾 面向对象

2017-02-25 20:49 267 查看
1.C++中空类默认产生:构造函数 析构函数 拷贝构造函数和赋值函数

2.struct和class唯一的不同就是:struct的变量默认是public而class的变量默认是private

3.静态成员变量需要显式地赋予初值,如果静态成员变量设置为私有,可以通过公共静态成员函数来访问。

4.初始化列表的初始化顺序是根据成员变量的声明顺序来初始化的

5.const常量必须在构造函数的初始化列表里面初始化,或者将其设置为static

6.CBase p;
CChild c;
p=&c;当销毁p时,会调用CBase的析构函数,如果Cbase的析构函数不是虚函数,则不会调用CChild的析构函数,造成内存浪费。所以MFC类库中,CObject类的析构函数为虚函数。
7.为什么构造函数不能为虚函数。

虚调用允许在不知道具体对象的情况下对函数进行调用。但是构造函数必须要知道对象的准确类型,所以构造函数不能为虚。

8.每一个虚函数的对象都必须维护一个v表,使用虚函数会有系统开销。因此,虚函数不能下机吧用。

9.析构函数可以是内联函数。

10.单个参数的构造函数如果不添加explicit关键字,会定义一个隐含的类型转换。

11.const变量不能随意转化为非const变量

12.覆盖的虚函数必须返回与父类的同名函数一致的类型。

13.析构函数不应该抛出异常
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  class c语言