More Effective C++ -----将构造函数和非成员函数虚拟化
来源:互联网 发布:淘宝外卖超出配送范围 编辑:程序博客网 时间:2024/06/11 04:29
本篇有三个重点:
1.虚拟构造函数
由于类自身的构造函数是无法定义成虚函数的,但是往往会有根据不同输入产生不同对象的需求,于是出现了以下函数:
clss NLComponent;class TextBlock: public NLComponent{}class Graphic:public NLComponent{}class NewsLetter{public:private: static NLCompoment* readComponent(istream & str){//此处为实现,穿件不同的类,此函数即称为虚拟构造函数}}
虚拟构造函数的应用场合很多,类工厂等都是由此原理产生。
2.虚拟拷贝构造函数
class TextBlock :public NLComponent{public: virtual TextBlock* clone() const //虚拟拷贝构造函数{return new TextBloct(*this);}}
上述函数内部的拷贝操作与类的拷贝构造函数完全保持一致,并且具有多态的性质。
3.非成员函数定义为虚函数
原则上是走不通的,毕竟不是成员函数。但是通过以下方法可以实现:在类中写虚函数,在外部调用虚函数即可
0 0
- More Effective C++----技巧 & (25)将构造函数和非成员函数虚拟化
- More Effective C++ -----将构造函数和非成员函数虚拟化
- 将构造函数和非成员函数虚拟化
- 8.将构造函数和非成员函数“虚拟化”
- 将构造函数和非成员函数虚拟化
- More Effective C++:避免缺省构造函数
- 《More Effective C++》 4: 非必要不提供默认构造函数
- 《More Effective C++》学习心得(七) 构造函数私有化
- 将构造函数以及非成员函数 “虚化”
- Effective c++(3th) Item9:绝不要在构造和析构期间调用虚拟函数
- More Effective C++----(24)理解虚拟函数、多继承、虚继承和RTTI所需的代价
- Effective C++学习笔记:分清成员函数,非成员函数和友元函数
- Effective C++ 条款19: 分清成员函数,非成员函数和友元函数
- effective C++笔记之条款19:分清成员函数,非成员函数和友元函数
- More Effective C++----(4)避免无用的缺省构造函数 & (5)谨慎定义类型转换函数
- Effective C++读书笔记---将成员变量声明为Private;宁以非成员、非友元函数替换成员函数
- c++将构造与非成员函数虚化的方法
- C++之const对象只能调用const成员函数---补充(18)《More Effective C++》
- 基本头部插入式单向链表程序
- 网易云音乐 反鸡汤
- Android Studio 自定义keystore的方法
- 学习Web开发的十佳网站
- 前端札记
- More Effective C++ -----将构造函数和非成员函数虚拟化
- Oracle访问的一些小细节
- 关于StringBuffer和String的replace面试题目
- bzoj 2083: [Poi2010]Intelligence test (二分)
- android looper
- 51nod 1523 非回文
- ASP.NET操作Word的IIS权限配置
- mysql存储过程传入两个参数,循环插入数据
- domReady机制探究及DOMContentLoaded研究