![]() |
1
3
因为
从那时起
检查问题 What can a 'const' method change? 有关什么是const的更多详细信息,请参阅const函数。 |
![]() |
2
3
如果将函数声明为class const function,这意味着您不能从函数中更改类的变量,您不能返回类变量的地址,除非您保证此函数返回一个不可更改的(const)值。
内部
这种情况的解决方案是返回一个指向
或者,如您所述,将此函数声明为非常量函数。
另一种解决方案是返回非指针值(值的副本),并使用
所以,如果你想让指针的位置等于向量的位置,你应该返回
那么为什么向量的行为不同呢?为什么不能退货&dblvec[索引]?
正如@t.niese post中提到的,对vector的操作符函数的调用会识别出它是一个常量向量,因此它会自动返回
我们想返回对这个变量的引用,但是返回的变量是一个常量。所以当你想回来的时候
即使您尝试四处调用vector.data(),它也会返回您
作为参考: Can const member function return a non-const pointer to a data member? |
![]() |
kaytu · push_back()后向量大小发生变化 2 年前 |
![]() |
Megasa3 · 使用随机值初始化二维向量 7 年前 |
![]() |
enanone · 求反std::矢量的最快方法 7 年前 |
![]() |
Victor O. · 如何将向量列表存储为全局变量? 7 年前 |
![]() |
PaperMoon · 具有结构mmapped向量的结构 7 年前 |