gpt4 book ai didi

C++,成员函数返回对包含指向 const 对象的指针的 vector 的 const 引用

转载 作者:太空狗 更新时间:2023-10-29 23:17:51 25 4
gpt4 key购买 nike

我有一个类,其中包含指向对象的指针的成员 vector 。现在我想要一个访问器方法来返回对此 vector 的 const 引用。我还希望调用方方法无法编辑 vector 指针指向的对象,即指针应指向 const 对象。这是我的错误代码:

class Foo
{
private:
vector<Foo*> myFoos;
public:
const vector<const Foo*> &getMyFoos(void)
{
return myFoos; //Doesn't work since vector<Foo*> cannot be cast to vector<const Foo*>
}
}

我看到了类似问题的答案,其中解决方案是制作 vector myFoos 的拷贝,其中拷贝的类型正确。由于 myFoos vector 可能非常大,是否可以在不复制的情况下执行此操作?

最佳答案

只需将 operator[] const 添加到您的 Foo 类:

const Foo& operator[] (size_t i) const {
// you may add some range checking here
return *myFoos[i];
}

关于C++,成员函数返回对包含指向 const 对象的指针的 vector 的 const 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16255202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com