2015-04-08 10:58:19

基类中定义了纯虚函数,派生类中将其实现。

如果在基类的构造函数或者析构函数中调用了该纯虚函数,

则会出现R6205 Error: pure virtual function call

对象在构造时,会先调用基类构造函数,但此时派生类对象还未构造成功,

因此调用的纯虚函数的虚表指针指向基类的虚表,而基类的纯虚函数没有定义。

如果是在基类的析构函数中调用,此时的派生类已经被销毁,也会出现这种情况。

 #include <stdio.h>

 class Base
{
public:
Base()
{
printf("Base construction be called...\n");
open_func();
} void open_func()
{
printf("Base::open_func() be called...\n");
show();
} virtual void show() = ;
}; class D : public Base
{
public:
D()
{
printf("D construction be called...\n");
} void show()
{
printf("D::show() be called...\n");
}
}; int main()
{
D d;
return ;
}

pure virtual function call的更多相关文章

  1. Mindjet MindManager 2012 从模板创建出现“Runtime Error pure virtual function call” 解决方法

    我的Mindjet MindManager 2012 Pro也就是MindManager10 在应用模板之后总会显示 Microsoft Visual C++ Runtime Library Runt ...

  2. why pure virtual function has definition 为什么可以在基类中实现纯虚函数

    看了会音频,无意搜到一个frameworks/base/include/utils/Flattenable.h : virtual ~Flattenable() = 0; 所以查了下“纯虚函数定义实现 ...

  3. [C++] Pure Virtual Function and Abstract Class

    Pure Virtual Function Abstract Class

  4. 纯虚函数(pure virtual function )和抽象类(abstract base class)

    函数体=0的虚函数称为“纯虚函数”.包含纯虚函数的类称为“抽象类” #include <string> class Animal // This Animal is an abstract ...

  5. 深入解析pure virtual function call

    在本文中,我们将不解释为什么会提示“纯虚拟函数调用”和如何提示“纯虚拟函数调用”,而是详细解释在win32平台的构造函数/析构函数中直接/间接调用纯虚拟函数时程序本身.在开始时,将显示一个经典示例,在 ...

  6. 结合实例详解"pure Virtual function called"

    作者:阿波 链接:http://blog.csdn.net/livelylittlefish/article/details/9750593 (4年前的一篇文章,翻出来共享一下.) 本实例即为经典的讲 ...

  7. c++ virtual 和 pure virtual的区别

    参考资料: http://stackoverflow.com/questions/1306778/c-virtual-pure-virtual-explained 验证代码: #include < ...

  8. (转) Virtual function

    原文地址:http://en.wikipedia.org/wiki/Virtual_function In object-oriented programming, a virtual functio ...

  9. C# abstract function VS virtual function?

    An abstract function has to be overridden while a virtual function may be overridden. Virtual functi ...

随机推荐

  1. centos 查看版本(转)

    # lsb_release -aLSB Version:    :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch ...

  2. ubuntu安装mysql--PC端

    sudo apt-get update sudo apt-get install mysql-server mysql-client //密码:mmchong sudo netstat -tap|gr ...

  3. windows远程控制ubuntu---基于ssh

    要实现windows下连接ubuntu需要安装以下软件: 1. windows下安装winSCP 2. Ubuntu下安装OpenSSH Server 可以使用命令行安装openSSH Server: ...

  4. Mysql如何向存在外键的数据表中插入数据

    1.创建表 CREATE TABLE `trn_comment_msg` ( `comMsgId` ) NOT NULL AUTO_INCREMENT COMMENT '评论消息主键', `msgId ...

  5. git安装及命令使用和github网站

    最近参与别人的github项目时,学习了git的使用,首先需要在https://github.com/网站上注册账号和邮箱,然后fork一个开源项目,然后下载目前Windows下最新版本的git,下载 ...

  6. 关于hasNextInt判断后无限循环输出else项的解决办法

    话不多说,上来就是干! import java.util.Scanner; public class Test_hasNextInt { /** * @param args */ public sta ...

  7. AjaxStudyNote

    AjaxStudyNoteBy:Silvers:(E:\Video_Tutorials\Java自学视频\尚硅谷JavaEE培训\6WEB基础-Ajax)15:02 2016/2/29什么是AjaxA ...

  8. Keras学习~第一个例子~跑MNIST

    import numpy as npimport gzip import struct import keras as ks import logging from keras.layers impo ...

  9. 一场属于HTML5守望者的盛宴——记图灵参加HTML5峰会

    2013年8月,北京正是一个火热的季节.一场火热的盛会,HTML5 峰会如约来袭.这是一场属于 HTML5 守望者的盛宴!HTML5作为一项新兴的技术,其未来是光明的,但是道路却是曲折的.需要标准的不 ...

  10. 从svn资源库目录checkout出maven项目方法

    从svn资源库目录checkout出maven项目方法,如下图所示: