C++重载(关于const的重载)

来源:互联网 发布:淘宝客服常见问题 编辑:程序博客网 时间:2024/05/19 10:07
#include <iostream>#define DefaultSize 10using namespace std;template<typename T>class Grail{public:Grail(){data = new T[DefaultSize];for(int i=0;i<10;i++){data[i]=i;}} const T& operator[](int size)const{return data[size];}T& operator[](int size){return data[size];}private:T *data;};int main(){const Grail<int> G1;cout<<G1[3]<<endl;//调用const operator[]Grail<int> G2;cout<<G2[3]<<endl;//调用operator []return 0;}//编译器能够根据对象的const属性区别对operator和const和非const版本的调用.

1 1