#include
#include using namespace std;
class NoName
{
public:
NoName():pstring(new std::string),i(0),d(0)
{
//打开文件
//连接数据库
//动态分配内存
cout << "构造函数被调用了!" << endl;
}
~NoName();
//析构函数只有一个,不能重载,没有参数,如果自己写了析构函数,那也要自己写复制构造函数和赋值操作符
NoName(const NoName& other);
NoName& operator=(const NoName& rhs);
private:
std::string* pstring;
int i;
double d;
};
NoName::NoName(const NoName& rhs)
{
pstring = new std::string;
*pstring = *(rhs.pstring);
i = rhs.i;
d = rhs.d;
}
NoName& NoName::operator=(const NoName& rhs)
{
pstring = new std::string;
*pstring = *(rhs.pstring);
i = rhs.i;
d = rhs.d;
return *this;
}
NoName::~NoName()
{
//关闭文件
//关闭数据库连接
//回收动态分配的内存
cout << "析构函数被调用了!" << endl;
delete pstring;
}
int main()
{
NoName a;
NoName* p = new NoName;
//用new创建的对象,动态分配内存,要用delete去删除
delete p;
return 0;
}
【C++|C++-析构函数】
推荐阅读
- #|力扣-105题 从前序与中序遍历序列构造二叉树(C++)- dfs
- 麦克算法|第12节课 图
- 寒假刷题特辑|【第五章】 C语言之牛客网刷题笔记 【点进来保证让知识充实你一整天】
- OpenCV|OpenCV C++案例实战四《图像透视矫正》
- 备战蓝桥|【备战蓝桥,冲击省一】高精度算法实现加减乘除
- 备战蓝桥|备战蓝桥,冲击省一 进制转换 你不会还不会吧()
- 备战蓝桥|备战蓝桥,冲击省一 二分查找法 看完你就会了
- 备战蓝桥|【2021年蓝桥省赛真题】赛前最后冲刺,省一我来啦
- C++常见面试题|顺网科技面试题 select poll epoll多路io复用都说一说