【发布时间】:2013-01-27 15:17:05
【问题描述】:
我想在我的班级中覆盖数组索引运算符。这是我正在尝试做的,但没有成功。
class Complex{
Complex const& operator[](unsigned int) const; // Read-only access
Complex& operator[](unsigned int); // Read/Write access:
};
const Complex& Complex::operator [](unsigned int unsignedInt) const {
const Complex* temp = this+i;
return *temp;
}
Complex& Complex::operator [](unsigned int unsignedInt) {
Complex* temp = this+i;
return *temp;
}
编辑: 我想做类似的事情:
Complex **c = new Complex[5]; //Create 2D array
c[2] = new Complex(); //Initialize
cout<<*c[2]; //print by overloading <<
【问题讨论】:
-
这是做什么的?这段代码有什么问题?
-
而不是 Complex Complex::const& operator[], Complex const Complex::operator[]
-
什么意思:你没有成功?
-
Also, in Complex& Complex::operator[],您不能返回指针作为引用。而是返回实际对象。 -
哎哟:
const Complex* temp = this+i;简而言之,非多音节词,不要这样做。
标签: c++ arrays class multidimensional-array operator-overloading