【发布时间】:2015-01-12 01:50:36
【问题描述】:
我有疑问,为不同类型的自定义类支持运算符是否正确? 假设我们有这个:
template<class T>
class C { /* Class implemantation */ }
int main () {
C<int> someObject;
C<double> otherObject;
std::cout << someObject + otherObject;
}
对于int类型的C对象和double类型的C对象支持operator+是否正确?
【问题讨论】:
-
C 一般支持这两种类型吗?有没有一种有意义的方式来为这两种类型实现
+运算符? -
这取决于你。你可以让它自动工作。您可以制作它,以便用户需要制作一个 static_cast (转换运算符)。或者你可以禁止它。自动的问题是哪种类型应该优先?
标签: c++