#include<iostream> using namespace std; class yyc { private: /* data */ public: yyc(); void test() { cout<<"yycsb"<<endl; } ~ yyc(); }; yyc:: yyc() { cout<<"构造函数"<<endl; } yyc::~ yyc() { cout<<"析构函数"<<endl; } int main() { // yyc *yycsb=new yyc ; 释放动态内存 yyc yycsb; cout<<"hello world!"<<endl; yycsb.test(); //delete yycsb; system("pause"); }这个代码无法到析构函数
时间: 2024-04-21 21:23:29 浏览: 124
你的代码存在一个问题,即 `delete yycsb;` 这行代码是错误的。因为 `yycsb` 是一个对象,而不是指针,所以不需要使用 `delete` 来释放内存。在这种情况下,对象的析构函数会在其作用域结束时自动调用。
以下是修正后的代码:
```cpp
#include<iostream>
using namespace std;
class yyc
{
private:
/* data */
public:
yyc();
void test()
{
cout << "yycsb" << endl;
}
~yyc();
};
yyc::yyc()
{
cout << "构造函数" << endl;
}
yyc::~yyc()
{
cout << "析构函数" << endl;
}
int main()
{
yyc yycsb;
cout << "hello world!" << endl;
yycsb.test();
system("pause");
}
```
在这个修正后的代码中,我删除了 `delete yycsb;` 这行代码,因为它是多余的。现在,对象 `yycsb` 在其作用域结束时会自动调用析构函数进行清理工作。
阅读全文