首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

Inside the C++ Object Model 深度探索对象模型 五-Construction 6-Runtime 7-Object

2013-11-08 
Inside the C++ Object Model 深度探索对象模型 5-Construction 6-Runtime 7-Object5构造,解构,拷贝语意学

Inside the C++ Object Model 深度探索对象模型 5-Construction 6-Runtime 7-Object

5构造,解构,拷贝语意学 Semantics of Construction, Destruction, Copy

纯虚拟函数的存在 Presence of Pure VF

>pure virtual function可以被定义和调用invoke: 只能被静态调用statically, 不能经由虚拟机调用; Ex. inline void Abstract_base::interface() const {...} Abstract_base::interface();

>pure virtual destructor一定要定义, 每一个derived class destructor会被编译器扩展, 以静态方式调用每一个virtual base class以及上一层base class的destructor; 缺少base class destructor的定义会导致链结失败;

>继承体系中的每一个class object的destructor都会被调用; 建议-不要把virtual destructor声明为pure;

虚拟规格的存在 Virtual Specification

>一般而言把所有的成员函数都声明为virtual function, 再靠编译器的优化操作把非必要的virtual invocation去除, 不是好的设计观念; Ex. inline函数的优化被破坏;

虚拟规格中const的存在

>决定一个virtual function是否const需要考虑到subclass的函数调用(const reference, const pointer), 以及derived instance修改data member的可能性;

重新考虑class的声明

暂无评论。 

热点排行