有如下类模板定义:() template<class T> class BigNumber{ long n; public: BigNumber(T i):n(i){} BigNumber operator+(BigNumber b) { return BigNumber(n+b.n); } }; 已知b1,b2是BigNumber的两个对象,则下列表达式中错误的是? 3+3 b1+3 b1+b2 3+b1
template<class T> class BigNumber{ long n; public: BigNumber(T i):n(i){} BigNumber operator+(BigNumber b) { return BigNumber(n+b.n); } };
我的理解是:
A.3+3 就是正常的3+3
B.b1+3 是BigNumber(b1)+BigNumber(3)
C.b1+b2 是BigNumber(b1)+BigNumber(b2)
D.3+b1 常数3无法匹配到此模版中的+重载函数,编译器无法识别
欢迎指正。。。