template <class T1, class T2>
class Pair {
private:
T1 a;
T2 b;
public:
T1 & first();
T2 & second();
T1 first() const { return a; }
T2 second() const { return b; }
Pair(const T1 & aval, const T2 & bval) : a(aval), b(bval) { }
Pair() {}
};
其中
T1 & first();
T2 & second();
T1 first() const { return a; }
T2 second() const { return b; }
这几个函数,不会存在二义性吗?
还有看到几个运算符重载的成员函数:
public:
double & operator[ ](int i);
double operator[ ](int i) const;
这些都不会导致二义性吗?