数组类中定义了Type *operator*()const{return elements;}该函数,不知道怎么使用!
Type *operator*()const{return elements;}
你是否写错了?你的elements是什么类型?是Type还是Type *?
如果是Type,就写成这个:
const Type operator*()const{return elements;}
怎么用?
设你的类名为array
array a;
.......
Type i = *a;
比如数组类Array
需要看一看Array类的数据成员
例:
Type * Array::operator*()const{return elements;}
使用时,定义Array类对象
Array arr;
Type *p;
p = *arr;
这样p实际上就指向了arr私有成员的首地址了
比如数组类Array
需要看一看Array类的数据成员
例:
Type * Array::operator*()const{return elements;}
使用时,定义Array类对象
Array arr;
Type *p;
p = *arr;
这样p实际上就指向了arr私有成员的首地址了
//--------------------------
这个说法有欠妥当.
首先按operator *的语义来看, 一般有两种:乘号和指针的解引用.那么按上面所说的是哪种呢?
重载的一大要素就是不能违背operator原来的语意.
实际上,就数组类而言, 大概只要提供operator[]就行了.