c++ - 重载运算符 = 作为成员函数

标签 c++ operators operator-overloading

C++ 只允许重载 = 运算符作为成员函数而不是全局函数。

Bruce Eckel 说,如果可以全局定义 operator=,那么您可能会尝试重新定义内置的 = 符号。,由于这个原因,您只能将 = 运算符重载为成员函数。

如果 C++ 已经定义了 = 运算符,那么为什么其他运算符如 + - 等...没有被 C++ 定义,因为它们可以作为非成员函数重载。 ?

最佳答案

编译器为所有未定义自己的类生成默认的复制赋值运算符 (operator=)。这意味着在任何情况下都不会选择全局重载。

关于c++ - 重载运算符 = 作为成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8718025/

相关文章:

java - JNI : can't convert jstring to LPCTSTR?

c++ - 手动调用 OpenGL 函数

java - 对于Integer类型变量, '='运算符是否等于值或引用?

c - -14 的左移 2 位是 =-56?如何?

c++ - 安全地重载流操作符>>

c++ - 为什么将对象分配给 map 会产生空对象?

c++ - EnumProcessModules 在 32 位 win7 上失败并出现错误 299

c - “mod” 和 “remainder” 有什么区别?

c++ - cpp 为什么 s.query 会被覆盖

C++ 访问私有(private)成员