gpt4 book ai didi

c++ - 将运算符重载为成员函数或非成员(友元)函数?

转载 作者:可可西里 更新时间:2023-11-01 15:30:29 24 4
gpt4 key购买 nike

我目前正在创建一个实用程序类,其中将包含重载的运算符。使它们成为成员或非成员 (friend) 函数的优缺点是什么?还是根本不重要?也许对此有最佳实践?

最佳答案

我会选择“C++ 编码标准:101 条规则、指南和最佳实践”:如果您可以将其作为非成员函数来执行,请将其作为非成员函数(在同一命名空间中)执行。

原因之一:它与隐式类型转换一起工作得更好。示例:您有一个带有重载运算符 * 的复杂类。如果要写成 2.0 * aComplexNumber,则需要 operator* 为非成员函数。

另一个原因:更少的耦合。非成员函数的耦合程度低于成员函数。这几乎总是一件好事。

关于c++ - 将运算符重载为成员函数或非成员(友元)函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1905439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com