析构函数忽略字符串赋值
destructor ignore string assignment
我用C++为一个类创建了一个程序,其中一个要求是在调用程序的某些部分时输出一个字符串。对于其中的大多数,我只是简单地将一个字符串分配给一个成员变量,然后输出该变量。我想知道我是否可以在析构函数中分配字符串,然后输出该字符串?当我尝试它时,它什么也不输出。
即:
Class
private:
string output;
~Class {
output = "destructor has fired!";
}
int main(){
cout << class.message;
}
这是伪代码,所以请忽略语法错误/缺失的部分。
当然可以在析构函数中输出一条消息,知道它已经启动,而实现这一点的一种方法是。。。
#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;
}
如果我理解你的问题,这就是你应该做的。注意:没有成员变量,直接调用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;
}
相关文章:
- cin >> int 给定一个字符串将 int 赋值为 0
- Qt PL/SQL - 赋值运算符 - 字符串缓冲区太小
- 对函数的 out 字符串参数使用 swap 与赋值
- 在C++中用字符串数组拆分声明和赋值
- 字符串 c++ 的不明确整数赋值
- 如何使用向量为字符串赋值
- 避免在 ctor 初始值设定项列表中的字符串赋值中使用双重调用函数
- 在 c++ 中为字符串变量赋值
- C字符串到宽C字符串的赋值
- 无法为字符串赋值(Eclipse CDT、MinGW、C++)
- 包含字符串值的结构在使用动态内存分配创建后进行赋值时会导致分段错误
- 从字符串数组打印其中一个字符串时出现空指针赋值错误
- 复制字符串集的正确方法是什么(在复制构造函数和赋值运算符中)
- 为字符串指针赋值
- C++-将null赋值给std::字符串
- 如果我分配给彼此的两个变量都是字符串类型,为什么我会收到这个strcpy赋值错误
- 字符串的C++向量,为什么赋值会导致相同的字符引用
- 如何防止从字符串派生的 2 个类之间的交叉赋值
- 提升::任何赋值字符串值
- 如何在c++中使用指针赋值字符串向量的向量