operator ClassName(){ ... } c++
operator ClassName(){ ... } c++
我遇到了一个看起来像这样的代码:
class Person { ... };
class PersonBuilder{
Person p;
protected:
Person& person;
...
operator Person(){
return std::move(person);
}
};
"操作员(("试图做什么?我看到它会返回人,但是如果这是全部意图,那么返回类型不是"人"。而不是操作员?为什么我们在这里使用"操作员"?
如果是,请原谅您的天真问题。
此语法定义了人构建器类的人构造运算符,因此当将操作员称为一个人时,一个人构建者:
personBuilder builder;
Person person{builder};
PersonBuilder类中的个人对象已移出,这等同于铸造。
请注意,将人对象从人构建器对象中移出,使其再次无法访问。您会更好地返回对象的副本。
相关文章:
- 如何修复此错误:className::className的无效使用
- 枚举类'classname'的多重定义
- 'ClassName'和'ClassInstance'未在此范围内声明
- operator ClassName(){ ... } c++
- 为什么我们不能像在java中使用的那样使用新的ClassName(),而不是使用新的ClassName?
- classname functionname(const classname & objectname)是什么意思?
- ClassName objectName(4) 和 ClassName objectName = 4; 之間的區別是什麼
- 有没有等效的Java <? 扩展 ClassName> 在C++?
- 在 C++ 中是否有等效于 Java 的'classname.this'?
- 基于className的字符串为QObject的子类获取QMetaObject
- 对"ClassName::memberField[abi:cxx11]"的未定义引用
- "new Classname*[]"是什么意思?
- C++ 两个类相互引用 错误:'ClassName'之前预期的类型说明符
- 在工作中遇到这个"operator ClassName *".这是什么意思?
- const classname &obj == classname const &obj?
- typedef void (AFX_MSG_CALL ClassName::*AFX_PMSGptr)(void);
- Arduino:'void (ClassName::)()' 类型的参数在附加中断时与'void (*)()'不匹配
- "class className;"本身在C++中有什么作用?
- 如何解决"未定义对'vtable for <>的引用<ClassName>"错误?
- C++不能从类调用公共方法:对'<ClassName>::<MethodName>'的未定义引用