向量容器的operator [] - 返回引用?

时间:2016-02-22 23:03:58

标签: c++ vector

我创建了一个名为 CardDeck (c ++)的类,其中包含vector<card*> deck私有成员。

我将operator []重载到这个类:

Card* CardDeck::operator[](int i) const{
return this->deck[i];}

您可以看到它返回卡* 而不是卡*&amp; 。当我尝试使用Card *&amp;但是,根据我的理解,它没有编译vector [i]返回第i个元素引用 - 就像写成here一样。

那怎么会像这样编译而不是用Card *&amp; ?

1 个答案:

答案 0 :(得分:2)

您不能从// document.location.href = "https://stackoverflow.com/questions/7909686/the-javascript-equivalent-of-this-php-function" schema = "https://" document.domain = "stackoverflow.com" scriptName = "/questions/7909686/the-javascript-equivalent-of-this-php-function" 成员函数返回非const引用,因为它允许调用者修改对象。只需返回const的副本,或者如果您想允许调用者修改指针,请不要将您的函数标记为Card*

另请注意,如果您希望能够访问const上下文中的值并从非const上下文中修改它们,则可以同时使用这两个值:

const