#include "stdafx.h"
#include <iostream>
using namespace std;
#include <map>
class Base
{
public:
virtual void pp(){}
};
class Dev:public Base
{
};
class A
{
public:
virtual std::string getVersion()=0;
virtual ~A()
{
cout << "~A()" << endl;
}
A()
{
cout << "A()" << endl;
}
};
//产品派生类B,实现其具体功能,其定义如下:
class B:public A
{
public: B()
{
cout<<"B()"<<endl; m_int = new int [100];
}
~B()
{
cout<<"~B()"<<endl; delete [] m_int;
}
std::string getVersion()
{
return std::string("hello!");
}
private: int *m_int;
};
//模拟该接口的调用代码如下:
int main(int argc, char* args[])
{
A *p = new B();
delete p;
return 0;
}
通过基类指针来执行删除操作时,基类的析构函数设为公有且虚拟的
最新推荐文章于 2022-05-15 16:49:05 发布