#include<iostream>
#include<string>
using namespace std;
class fu{
public:
fu(){
cout << "fu类构造函数" << endl;
}
//使子类对象析构函数运行起来释放内存
virtual ~fu(){
cout << "fu类析构函数" << endl;
}
virtual void func() = 0;
};
class zi :public fu{
public:
zi(string name){
cout << "zi类构造调用" << endl;
lname=new string(name);
}
~zi(){
cout << "zi类析构调用" << endl;
if (lname==NULL)
delete lname;
lname = NULL;
}
void func(){
cout <<*lname<< "zi类调用" << endl;
}
string *lname;
};
void test(){
fu *abc = new zi("tom");
abc->func();
abc->~fu();
}
int main(){
test();
}
虚析构函数和纯虚构函数知识点
最新推荐文章于 2024-11-05 17:16:24 发布
本文介绍了C++中的类结构,重点讨论了基类fu和派生类zi的构造与析构函数,以及如何使用指针进行内存管理和对象的动态分配。并通过test和main函数展示了实例应用。
摘要由CSDN通过智能技术生成