我对运算符 = 很满意,它由编译器自动合成。但我希望它是私有(private)的,并且不想用类型的页面长定义来膨胀我的代码
Foo& Foo::operator= (const Foo& foo)
{
if (this == &foo)
return *this;
member1_ = foo.member1_;
member2_ = foo.member2_;
member3_ = foo.member2_;
...
member1000_ = foo.member1000_;
return *this;
}
请问有什么办法吗?
最佳答案
在 C++11 中是:
class Foo
{
Foo& operator=(const Foo& source) = default;
public:
// ...
};
遗憾的是,大多数编译器尚未实现新标准的这一部分。
关于c++ - 是否可以在 C++ 中声明 operator= private 并同时由编译器合成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9006508/