如何让getter返回另一个对象的指针

How do I have a getter that returns a pointer of another object?

本文关键字:一个对象 指针 返回 getter      更新时间:2023-10-16

我在网上找到了以下内容来获得另一个类的对象:

Class A{
.........
 B b;
.........
const B& getB()const{
return b;
}
};

下面是一个指向另一类对象的指针:

Class A{
.........
B* b;
void setB(B *x) { b=x; }
B *getB() const { return b; }
.........

};

我有以下情况:

 Class A{
.........
 B** b;
 A(int i){ b = new B*[i] ;}
.........
};

我想从A返回B*,这样new a(4)->getB()将返回b[4]。我是否执行以下操作:

    Class A{
    .........
     B** b;
     A(int i){ b = new B*[i] ;}
    .........
    const B&* getB() const{ return b; }
   ........
    };

我的意图是从我在另一个类的构造函数中初始化的对象指针数组中返回一个对象。

const B** getB() const{ return b; }

这就是你想要的?

与其使用原始指针,不如考虑使用一些容器(std::vector?)或智能指针。如果没有,请提供一些关于您问题的更好信息。

编辑

我想从另一个类的对象指针数组中返回一个对象

好的,所以

const B* getB(size_t index) const{ return b[index]; }

这将返回对指针到常量-B的引用,该指针到常量B以前存储为数组的第五个元素。

const B*& getB() const{ return b[4]; }

注意你的用法。new a(4)->getB()将调用未定义的行为,因为数组中只有四个元素。