我在C ++中为一个类创建了一个程序,其中一个要求是在调用程序的某些部分时输出一个字符串。对于大多数这些我只是简单地将一个字符串分配给一个成员变量,然后输出该变量。我想知道我可以在析构函数中分配字符串然后输出该字符串吗?当我尝试它时,它什么也没输出。
即:
Class
private:
string output;
~Class {
output = "destructor has fired!";
}
int main(){
cout << class.message;
}
这是伪代码,请忽略语法错误/缺失部分。
答案 0 :(得分:2)
当然可以在析构函数中输出一条消息,知道它已经被触发了,一种方法就是这样做......
#include <iostream>
#include <string>
using namespace std;
class C{
string output; // by default private
public:
C(){}
~C() { cout << output << endl; }
void setString(const string& s) {
output = s;
}
};
int main()
{
{
C s;
s.setString("Destructor has fired");
}
return 0;
}
答案 1 :(得分:1)
如果我理解你的问题,那么这就是你应该做的。注意:没有成员变量,直接调用std::cout
。
#include <iostream>
#include <string>
using namespace std;
class C{
public:
C() {
cout << "C ctor" << endl;
}
~C() {
cout << "C dtor" << endl;
}
};
int main()
{
{
C s;
}
return 0;
}