c++中,虚函数和纯虚函数的区别是没有实现体的虚函数 这个选项为什么错?错在哪了呢?

1. 在基类的构造函数中调用该函数此时派生类派生类还未构造成功

2.或是在基类的析构函数中调用该函数此时派生类以被销毁;

以上两种情况均会导致该错误
情况 1 代码礻例: 在基类的构造函数中调用虚函数和纯虚函数的区别例子代码:

情况 2 代码示例: 在基类的析构函数中调用虚函数和纯虚函数的区别

//  建立,導致调用虚函数和纯虚函数的区别错误!!! 

可以调用下面函数处理 虚函数和纯虚函数的区别调用异常

 总结: 在父类的 构造函数 和 析构函數 中都不能调用虚函数和纯虚函数的区别(不能以任何方式调用)

不能就算中转一下也不行,因為这个时候还虚函数表还没有改写也就是说虚函数和纯虚函数的区别还没有实现,函数指针指是空的这是时序的问题。运行之后会报這个错误: libc++abi.dylib: Pure virtual function called! [1] 2417 abort ./test 而且多数情况下连编译期都过不去。

你对这个回答的评价是

我要回帖

更多关于 虚函数和纯虚函数的区别 的文章

 

随机推荐