C++: Pure Virtual Function Called
来源:互联网 发布:yolo直播软件官方网站 编辑:程序博客网 时间:2024/04/29 06:18
最近从水木C++版看到了这个问题,什么情况下纯虚函数会被调用?
这个链接解释的比较清楚,http://www.artima.com/cppsource/pure_virtual.html
下面是一个demo,在基类构造函数中调用纯虚函数,
>> cat pure1.C #include <iostream>using namespace std;class B {public: B() { func(); } void virtual func() = 0;};class D : public B {public: void func() { cout << " I am in D " << endl; }};int main(){ D *pd = new D();}
Solaris Sun CC,
>> CC pure1.C "pure1.C", line 8: Warning: Attempt to call a pure virtual function B::func() will always fail.1 Warning(s) detected.>> ./a.outPure virtual function calledAbort(coredump)
Linux g++
>> g++ pure1.C pure1.C: In constructor `B::B()':pure1.C:8: error: abstract virtual `virtual void B::func()' called from constructor
在基类构造函数中间接调用纯虚函数,
>> cat pure.C#include <iostream>using namespace std;class B {public: B() { fun(); } void fun() { func(); } void virtual func() = 0;};class D : public B {public: void func() { cout << " I am in D " << endl; }};int main(){ D *pd = new D();}
Linux g++,
>> g++ pure.C>> ./a.out pure virtual method calledterminate called without an active exceptionAbort(coredump)
Solaris Sun CC,
>> CC pure.C >> ./a.outPure virtual function calledAbort(coredump)
- C++: Pure Virtual Function Called
- Pure virtual function called
- pure virtual function called
- Pure Virtual Function Called
- Pure virtual function called
- "Pure Virtual Function Called": An Explanation
- Pure Virtual Function Called: An Explanation
- 结合实例详解"pure Virtual function called"
- "Pure Virtual Function Called": An Explanation
- 【转载】一篇详尽分析C++“Pure Virtual Function Called”错误的文章
- The error “Pure Virtual Function Called” about C++
- pure virtual function called--虚函数调用错误
- pure virtual function called--虚函数调用错误
- pure virtual method called
- c / c++ virtual function and pure virtual function summarize
- pure virtual function call
- "Pure Virtual Function Called" 纯虚函数调用错误分析(翻译)
- C++ virtual function (not pure virtual function)
- There is a process already using the admin port 4848
- 访问者模式
- Android 中Message,MessageQueue,Looper,Handler详解+实例
- Linux编程工具集锦
- IOS学习笔记8—UITableViewController
- C++: Pure Virtual Function Called
- i++循环与i--循环的执行效率
- himi之路~
- Ubuntu 12.04 设置外接显示器
- Activity横竖屏切换时生命周期变化
- Hibernate 关联映射 之 多对多 关联(二) 之拆分
- 共享库函数调用原理
- Linux下抓包工具tcpdump以及分析包的工具wireshark
- Java读取properties文件 【转】