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)指针就是地址,要占用存储空间。
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)指针就是地址,要占用存储空间。
相关文章推荐
- c++(一) 类 对象 重载 继承 多态 构造函数 虚函数 覆盖 纯虚函数等
- C++ 封装、继承、多态、重载、覆盖、隐藏基本概念详解
- C++虚继承、虚基类、虚函数与纯虚函数的概念和引用
- c++ 继承 虚函数与多态性 重载 覆盖 隐藏
- C++中的重载,隐藏,覆盖,虚函数,多态浅析
- 关于重载,覆盖/隐藏,虚函数,纯虚函数,多重继承
- (总结)C++虚继承,虚基类、虚函数与纯虚函数的概念和引用(待补充)
- C++重载覆盖和隐藏,虚函数与纯虚函数
- C++虚继承,虚基类、虚函数与纯虚函数的概念和引用(待补充)
- c++虚函数,纯虚函数,抽象类,覆盖,重载,隐藏
- c++ 继承 虚函数与多态性 重载 覆盖 隐藏
- c++面试常用知识(sizeof计算类的大小,虚拟继承,重载,隐藏,覆盖)
- C++中的虚函数,多态,覆盖隐藏重载
- 谈谈C++继承中的重载,覆盖和隐藏
- C++中的虚函数,多态,覆盖隐藏重载
- C++继承:同名隐藏、覆盖,虚函数
- 谈C++继承中的重载、覆盖和隐藏
- C++拷贝构造、临时对象、虚拟继承、重载、覆盖、隐藏
- 继承与多态---上 --- 函数重写、多态、虚函数、覆盖、隐藏
- C++继承-重载-多态-虚函数