在实现模板类的时候,如何实现类指针访问重载的符号如>=???
在实现模板类的时候,如何实现类指针访问重载的符号如>=???
由于在模板中使用了类的指针,因此使用模板比较的时候,指针能够直接进行比较,而没有调用类重载的操作符。在使用stl的deque的时候,也可以定义一个指针,然后重载能够实现这个指针类的重载操作符,它是怎么实现的呢?现在还没有仔细看stl的源码分析,如果有熟悉的,请顶一下,谢谢.
[解决办法]
帮顶!!!
[解决办法]
参考
- C/C++ code
template <typename T>class A{ public: A(int n = 10); ~A(); T& operator [](int i); bool operator >=(const A &t); private: T *array; int size; };template <typename T>A<T>::A(int n){ size = n; array = new T[size]; }template <typename T>A<T>::~A(){ delete []array; }template <typename T>T& A<T>::operator [](int i){ if(i < n) return array[i]; cout<<"error!"<<endl;}template <typename T>bool A<T>::operator >=(const A &t){ if(size >= t.size) return true; else return false;}int main(int argc, char *argv[]){ A<int> *pa = new A<int>(2); A<int> *pb = new A<int>(4); if(*pa >= *pb) { cout<<"a >= b"<<endl; } else cout<<"a < b"<<endl; delete pa; pa = NULL; delete pb; pb = NULL; system("PAUSE"); return 0;}