gpt4 book ai didi

c++ - 运算符 ClassName(){ ... } C++

转载 作者:行者123 更新时间:2023-12-03 21:29:47 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What are the basic rules and idioms for operator overloading?

(7 个回答)


4 个月前关闭。




我遇到了一个看起来像这样的代码:

class Person { ... };

class PersonBuilder{
Person p;
protected:
Person& person;
...
operator Person(){
return std::move(person);
}
};

“operator Person()”试图做什么?我看到它返回 person,但如果这是整个意图,那么返回类型不是“Person&”而不是运算符吗?为什么我们在这里使用“运算符”?

请原谅一个幼稚的问题,如果是的话。

最佳答案

此语法为 PersonBuilder 类定义了一个 Person 构造函数运算符,因此当像这样调用一个 PersonBuilder 运算符时:

personBuilder builder;
Person person{builder};
PersonBuilder 类中的 Person 对象被移出其中,这相当于强制转换。
请注意,将 Person 对象移出 PersonBuilder 对象会使其再次无法访问。您最好返回对象的拷贝。

关于c++ - 运算符 ClassName(){ ... } C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44752735/

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