Rod*_*ddy 18 c++ operator-overloading non-member-functions
我正在尝试这样的事情:
Foo & operator=(Foo & to, const Bar &from);
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误:
E2239 'operator =(Foo &, const Bar &)' must be a member function
Run Code Online (Sandbox Code Playgroud)
操作员可以/不能被定义为自由函数是否有限制?如果是,为什么?
Jam*_*lis 24
赋值运算符必须是非静态成员函数,并且必须只有一个参数:
赋值运算符应由具有一个参数的非静态成员函数实现(C++ 03 13.5.3/1).
operator(),, operator[]并且operator->还必须实现为非静态成员函数.
特定于类operator new和operator delete(及其变体)必须实现为静态成员函数(请注意,这些函数是隐式静态的,即使它们未使用static关键字声明).
| 归档时间: |
|
| 查看次数: |
6557 次 |
| 最近记录: |