C++只允许重载=运算符作为成员函数,而不是全局函数。
Bruce Eckel说if it was possible to define operator= globally, then you might attempt to redefine the built-in = sign.,由于这个原因,你只能重载=运算符作为成员函数。
如果C++已经定义了=运算符,那么为什么还要定义+、-等其他运算符呢?不是由C++定义的,因为它们可以作为非成员函数重载。?
发布于 2012-01-04 04:24:17
编译器为所有没有定义自己的类生成默认的复制赋值运算符(operator=)。这意味着在任何情况下都不会选择全局重载。
发布于 2012-01-04 04:12:33
=操作符(用作初始化时)与构造函数紧密相关;当您编写SomeClass a = b;代码时,会调用SomeClass的一些构造函数。
发布于 2012-01-04 04:12:57
因为赋值对于任何类型都有明确的含义,所以其他运算符就没有。
https://stackoverflow.com/questions/8718025
复制相似问题