平时用了C++那么多年,真到了地头发现还是很容易弄糊涂的,以下的程序代码试一下自己能不能判断正确.
// testvirtual.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class Base
{
public:
Base(){cout<<"Base"<<endl;show();}
virtual ~Base(){cout<<"~Base"<<endl;}
virtual void show(){ cout<<"Base()::show"<<endl;}
};
class A:public Base
{
public:
A(){cout<<"A"<<endl;show();}
~A(){cout<<"~A"<<endl;}
void show(){cout<<"A()::show"<<endl;}
};
int _tmain(int argc, _TCHAR* argv[])
{
{
Base* p = new A();
delete p;
}
return 0;
}
分享到:
相关推荐
构造函数不能声明为虚函数,析构函数可以声明为虚函数。
析构函数也是以类名作为函数名,与构造函数不同的是在函数名前添加一个“~”符号,标识该函数是析构函数。析构函数没有返回值,甚至void类型也不可以,析构函数也没有参数,因此析构函数是不能够重载的。这是析构...
实验_构造函数与析构函数.doc实验_构造函数与析构函数.doc实验_构造函数与析构函数.doc
该资源的内容主要是 虚基类 虚函数成员 虚析构函数的具体的区别
虚析构函数示例 c++析构函数是否是虚函数时的差别,敬请留意
c#构造函数与析构函数.doc
string 类实现,构造函数、析构函数、操作符重载等 txt文件,复制到cpp中即可编译运行
在C+ + 中, 构造函数是一个在构件对象的时 候调用的特殊的函数, 其目的是对对象进行初始 化工作, 从而使对象被使用之前可以处于一种合 理的状态。析构函数是在撤消对象时, 收回对象 中成员数据所占用的存储空间。但...
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明:
详细解释了为什么析构函数可以是虚函数,而构造函数不能是虚函数
//从堆上分配一个int型变量所占的字节内存,这个内存单元存放的一个整型数值0,然后让一个整型指针变量P指向它的地址 } Derived::~Derived() { cout; delete p; } void fun(Base*b) { delete b; } int main(int...
本文给大家分享了避免析构函数调用虚函数。
此word文档主要讲解的是C++的构造函数和洗过后函数。配合几个例子,希望能给初学者一些帮助。
C++面向对象的编程入门篇--类构造函数与析构函数C++面向对象的编程入门篇--类构造函数与析构函数
c++中关于构造函数与析构函数部分的课件,有助于初学者自学。
整理关于php面构造函数,析构函数的基础知识
我刚学C++构造函数与析构函数,现在自己写了一段代码,和你们分享
C++简单类的实现,包括构造函数,析构函数以及拷贝构造函数