![]() |
1
6
我个人不建议像
当您有一个小的不可变类或结构,它的行为类似于“基元”类型时,运算符重载是有意义的。但是,当您开始为其他类尝试这样做时,它确实会影响可维护性。 我建议您改为进行显式方法调用。
在阅读评论后,我的建议是使用
|
![]() |
2
5
重载的不可变字符列表
顺便说一句,我最近创建了一个类似于您描述的函数:
我决定
|
![]() |
3
2
什么?
|
![]() |
4
2
关于运营商,有一点是人们希望他们相对高效。没什么好说的,但人们似乎确实希望这样。 如果在内部,这样一个列表的结构允许您通过让它存储对其来源的两个引用来创建一个连接列表(非常可能,特别是考虑到不可变性会消除混淆副作用的风险),那么我就开始使用它。如果它可能需要做一个相对昂贵的操作,那么我不会这样做。“concatenate()”可能会让人考虑“我真的需要在我目前所处的这个紧循环中移动这么多内存吗,或者我应该在这种想法合适的时候考虑一种不同的方法”。 |
![]() |
5
1
我会这么做的。 毕竟,字符串是一个字符列表。 是的,如果我看到了<list>+<list>我会立即想到concatenate(唯一的其他可能性是vector sum,这很少见)。 |
![]() |
Noah Wilder · Swift中元组的操作符重载 7 年前 |
![]() |
Salman · 指向具有数组索引运算符重载的类的指针 7 年前 |
![]() |
Nom OnTheCookie · 使用向量重载C++输出 7 年前 |
![]() |
J. Doe · C++重载:从友元函数切换到成员函数 7 年前 |
![]() |
Ana · 使用操作符重载添加存储在vector中的类对象 7 年前 |
![]() |
Matthew · 重载运算符|用于固定大小的阵列? 7 年前 |
![]() |
Martin Žid · 重载运算符+=具有两个类 7 年前 |