我正在定义赋值运算符的多个重载,如下所示:
foo.h中
class Foo
{
private:
bool my_bool;
int my_int;
std::string my_string;
public:
Foo& operator= (bool value);
Foo& operator= (int value);
Foo& operator= (const std::string& value);
};
Run Code Online (Sandbox Code Playgroud)
Foo.cpp中
// Assignment Operators.
Foo& Foo::operator= (bool value) {my_bool = value; return *this;}
Foo& Foo::operator= (int value) {my_int = value; return *this;}
Foo& Foo::operator= (const std::string& value) {my_string = value; return *this;}
Run Code Online (Sandbox Code Playgroud)
这是我的main.cpp(参见标记的注释SURPRISE
):
Foo boolFoo;
Foo intFoo;
Foo stringFoo;
// Reassign values via appropriate assignment operator.
boolFoo = true; …
Run Code Online (Sandbox Code Playgroud)