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

C++继承、虚函数、纯虚函数、多态、覆盖、重载、隐藏、引用等常用概念

2012-11-19 16:32 561 查看
常用概念有:继承、虚函数、纯虚函数、多态、覆盖、重载、隐藏等

1、继承:

继承比较好理解,主要注意继承中构造函数的调用顺序。构造子类(派生类)的时候,先要调用父类(基类)的构造函数。

2、虚函数:

virtual关键字

3、纯虚函数

virtual void breath() = 0;

纯虚函数让基类先具有一个操作名称,没有操作内容,让派生类在继承时再去具体的给出定义。凡是有纯虚函数的类叫抽象类,这种类不能声明对象,只是作为基类为派生类服务,在派生类中必须完全实现基类的纯虚函数。否则,派生类也成了抽象类,不能实例化对象。

4、多态:

多态性是用虚函数类实现的,而不是纯虚函数。

多态用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的世纪类型来调用相应的函数。(迟绑定或者叫动态绑定)

5、覆盖:

构成函数覆盖的条件为:

1)基类函数必须是虚函数;(virtual)

2)发生覆盖的两个函数要分别位于派生类和基类中;

3)函数名称与参数列表必须完全相同。

6、重载:

函数参数类型、参数个数不同才能构成重载。重载发生在同一个类中。

7、隐藏:

派生类中具有与基类同名的函数(不考虑参数列表是否相同),从而在派生类中隐藏了基类的同名函数。

隐藏、重载、覆盖容易混淆,简单的区别是:

1)重载发生在同一个类中,隐藏和覆盖都发生在派生类与基类中;

2)派生类与基类中,如果两个函数函数名称与参数列表完全相同,基类函数中如果使用了virtual,则属于覆盖,如果没有使用virtual,则属于隐藏。

3)派生类与基类中,如果两个函数函数名称相同,参数列表不同,不管基类函数前是否使用了virtual,都属于隐藏

8、引用:

引用是变量的别名,必须在声明的时候初始化。引用和用来初始化引用的变量共用同一块内存。

引用与指针变量的区别:

1)引用是一个别名,不占用内存地址空间,与初始化它的变量占用同一块内存;

2)指针就是地址,要占用存储空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: