Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带字符串参数的重载赋值运算符 我有C++中定义的一种类型: class MyTypeT { public: MyTypeT(); virtual ~MyTypeT(); /// Initialize from string bool fromString(const std::string &typeinfo); /// Write to string virtual std::string toString() const; /// Is instance empty (not initialized yet) bool empty() const; };_C++_Operator Overloading - Fatal编程技术网

带字符串参数的重载赋值运算符 我有C++中定义的一种类型: class MyTypeT { public: MyTypeT(); virtual ~MyTypeT(); /// Initialize from string bool fromString(const std::string &typeinfo); /// Write to string virtual std::string toString() const; /// Is instance empty (not initialized yet) bool empty() const; };

带字符串参数的重载赋值运算符 我有C++中定义的一种类型: class MyTypeT { public: MyTypeT(); virtual ~MyTypeT(); /// Initialize from string bool fromString(const std::string &typeinfo); /// Write to string virtual std::string toString() const; /// Is instance empty (not initialized yet) bool empty() const; };,c++,operator-overloading,C++,Operator Overloading,我想让赋值操作符过载,如下所示: MyTypeT & MyTypeT::operator=(const std::string & rhs) { fromString(rhs); return *this; } 这是允许且有用的方法,还是有任何副作用?相关/重复:最好创建MyTypeT(std::string)constructor,并且不需要为您键入和std::string以及任何其他运算符多次重载。允许:是。有用:不。@ChristianHackl为什么不呢

我想让赋值操作符过载,如下所示:

MyTypeT & MyTypeT::operator=(const std::string & rhs)
{
    fromString(rhs);
    return *this;
}

这是允许且有用的方法,还是有任何副作用?

相关/重复:最好创建
MyTypeT(std::string)
constructor,并且不需要为您键入和
std::string
以及任何其他运算符多次重载。允许:是。有用:不。@ChristianHackl为什么不呢?取决于你的代码如何使用这个类,这可能是个好主意,也可能不是个好主意。作为一个粗略的经验法则,如果您提供一个
操作符=()
,那么您需要提供一个相应的构造函数。