gpt4 book ai didi

c++ - 让某个类的 '=' 运算符在声明时运行构造函数

转载 作者:行者123 更新时间:2023-11-28 04:31:52 25 4
gpt4 key购买 nike

我想知道是否有办法让 = 运算符在声明时触发类的构造函数(或任何方法)

假设

class foo
{
public:
string variable="";
foo(string var)
{
this->variable=var;
}
foo(){}
void operator=(string var)
{
this->variable=var;
}
}
int main()
{
foo obj="new foo object";
}

当我运行它时,它显示“错误:请求从‘const char[15]’转换为非标量类型‘foo’”

但是当我这样做的时候

foo obj;
obj="new foo object";

有效

我该怎么做才能使第一种方法起作用?

最佳答案

What can I do so the first method will work?

提供一个构造函数,该构造函数接受 char const * 类型的参数。

并使用构造函数的初始化列表来初始化成员,而不是构造函数主体中的赋值。

顺便说一句:

foo obj = "new foo object";

不调用 operator=()

关于c++ - 让某个类的 '=' 运算符在声明时运行构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52679876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com