C++编程思想笔记——继承和组合
2013-06-18 08:59
211 查看
非自动继承的函数
不是所有的函数都能从基类继承到派生类中。构造函数和析构函数是用来处理对象的创建和析构的,他们只知道对咋他们的特殊层次的对象做什么。所以,在整个层析的所有的构造函数和析构函数都必须被调用,也就是说构造函数和析构函数不能被继承。
另外,operator=也不能被继承,应为它完成类似构造函数的活动。这就是说,尽管我们知道如何由等号右边的对象初始化左边的对象的所有成员,但这并不意味着这个初始化在继承后仍有意义。
私有继承
如果想产生想基类一样的接口,而不允许处理该对象像处理基类一样,可以使用私有继承。当私有继承时,基类的所有public成员都编程了private。如果希望他们总的任何一个是可见的,只要用派生类的public选项声明它们的名字即可。
不是所有的函数都能从基类继承到派生类中。构造函数和析构函数是用来处理对象的创建和析构的,他们只知道对咋他们的特殊层次的对象做什么。所以,在整个层析的所有的构造函数和析构函数都必须被调用,也就是说构造函数和析构函数不能被继承。
另外,operator=也不能被继承,应为它完成类似构造函数的活动。这就是说,尽管我们知道如何由等号右边的对象初始化左边的对象的所有成员,但这并不意味着这个初始化在继承后仍有意义。
私有继承
如果想产生想基类一样的接口,而不允许处理该对象像处理基类一样,可以使用私有继承。当私有继承时,基类的所有public成员都编程了private。如果希望他们总的任何一个是可见的,只要用派生类的public选项声明它们的名字即可。
class base1 { piublic: char f() const { return 'a'; } int g() const { return 2; } float h() cosnt { return 3.0; } }; class derived : base1 { public: base1::f; base1::h; }; main() { derived d; d.f(); d.h(); //d.g(); //Error--private function }
相关文章推荐
- C++笔记——c++编程思想(上)第十一、十二、十三章 引用和拷贝构造函数,运算符重载,继承组合等
- C++编程思想--继承与组合
- java编程思想学习笔记:如何选择继承与组合
- Java编程思想笔记02:组合与继承、final、策略设计模式与适配器模式、内部类、序列化控制(注意事项)
- C++编程思想杂记(14章 继承和组合)
- C++编程思想(2nd卷一):继承和组合
- C++编程思想(2nd卷一):继承和组合
- C++学习笔记:3.3.4 继承和组合混搭情况下,构造和析构调用顺序
- [java学习笔记]继承和组合
- C++编程思想笔记(1)
- JAVA学习笔记12——super关键字+继承的内存分析+组合
- Java编程思想学习笔记_2(继承和多态)
- C++学习笔记――继承和组合
- C++笔记——c++编程思想(上)第四五六章数据抽象、初始化与清除
- Java菜鸟学习笔记--面向对象篇(十四):继承与组合
- C++编程思想笔记(0010)。。。
- 组合与继承 学习笔记
- [阅读笔记]面向对象的设计法则--法则1:优先使用(对象)组合,而非(类)继承 Favor Composition Over Inheritance
- C++编程思想笔记(0011)。。。
- C++编程思想笔记——运算符重载