2 dreamchaseryx DreamChaserYx 于 2014.11.27 17:36 提问

类中const函数的返回值问题

我写了一个matrix类,其中定义了一个二维指针int **p用来表示这个矩阵,现在我需要些一个下标操作符的重载,但是他会报错。
const int *&matrix::operator const
{
return p[n];
}
这个函数返回一个一维指针引用。但是我不知道错在哪儿了。
但是如果把返回引用改成返回一维指针本身,也就是如下所示,就没问题了。为什么呢??哪个大神来解释下。
const int *matrix::operator const
{
return p[n];
}

2个回答

AkibaTakuya
AkibaTakuya   2014.11.27 17:52

const int *&matrix::operator const{} //返回的是指针类型的引用
const int *matrix::operator const{} //返回的是指针类型,两者是不同类型的。

DreamChaserYx
DreamChaserYx 我知道,可是为什么返回指针类型的引用就会报错??
大约 3 年之前 回复
luxiuwen
luxiuwen   2014.11.27 18:06

引用返回的也是一个隐藏的指针, 把平p[n] 改成p试试

DreamChaserYx
DreamChaserYx p是一个二维指针啊。。。p[n]是一个一维指针。。我没懂你意思。。
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!