首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重载运算符=作为成员函数

重载运算符=作为成员函数
EN

Stack Overflow用户
提问于 2012-01-04 04:10:33
回答 5查看 352关注 0票数 1

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

Bruce Eckel说if it was possible to define operator= globally, then you might attempt to redefine the built-in = sign.,由于这个原因,你只能重载=运算符作为成员函数。

如果C++已经定义了=运算符,那么为什么还要定义+-等其他运算符呢?不是由C++定义的,因为它们可以作为非成员函数重载。?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-01-04 04:24:17

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

票数 4
EN

Stack Overflow用户

发布于 2012-01-04 04:12:33

=操作符(用作初始化时)与构造函数紧密相关;当您编写SomeClass a = b;代码时,会调用SomeClass的一些构造函数。

票数 0
EN

Stack Overflow用户

发布于 2012-01-04 04:12:57

因为赋值对于任何类型都有明确的含义,所以其他运算符就没有。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8718025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档