平时用了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;
}
本文通过一个C++示例程序,展示了基类指针指向派生类对象时虚函数与析构函数的调用过程,解释了C++中虚函数与多态性的实现方式。
610

被折叠的 条评论
为什么被折叠?



