是什么区别public,private以及protected用C++继承?我在SO上发现的所有问题都涉及具体案例.
从10.4 抽象类 parag.标准中的6:
"可以从抽象类的构造函数(或析构函数)调用成员函数;直接或间接地对从这样的构造函数(或析构函数)创建(或销毁)的对象进行纯虚函数的虚拟调用的效果未定义."
假设标准允许从构造函数(或析构函数)调用非纯虚函数,为什么区别?
[编辑]关于纯虚函数的更多标准引用:
§10.4/ 2通过在类定义中的函数声明中使用纯说明符(9.2)来指定虚函数.只有在使用(12.4)qualified-id语法(5.1)调用时,才需要定义纯虚函数.... [注意:函数声明不能同时提供纯指定符和定义-end note]
§12.4/ 9 析构函数可以声明为虚拟(10.3)或纯虚拟(10.4); 如果在程序中创建了该类或任何派生类的任何对象,则应定义析构函数.
一些需要回答的问题是:
如果纯虚函数没有给出实现,那么这不应该是编译器或链接器错误吗?
在为纯虚函数赋予实现的情况下,为什么在这种情况下不能很好地定义它来调用这个函数?