我如何获得一个返回另一个对象指针的getter?

时间:2016-07-22 18:40:04

标签: c++ pointers object getter

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

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] ;}
.........
};

我有以下情况:

new a(4)->getB()

我想从A.So返回B *,b[4]将返回 Class A{ ......... B** b; A(int i){ b = new B*[i] ;} ......... const B&* getB() const{ return b; } ........ }; 。我是否会执行以下操作:

public class Student
{
    public Student() { }

    public int StudentId { get; set; }
    public string StudentName { get; set; }

    public virtual StudentAddress Address { get; set; }

}

public class StudentAddress
{
    public int StudentId { get; set; }

    public string Address1 { get; set; }
    public string Address2 { get; set; }
    public string City { get; set; }
    public int Zipcode { get; set; }
    public string State { get; set; }
    public string Country { get; set; }

    public virtual Student Student { get; set; }
}

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

2 个答案:

答案 0 :(得分:1)

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

这是你想要的吗?

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

修改

  

我想从另一个类

的对象指针数组中返回一个对象

好的

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

答案 1 :(得分:0)

这将返回对以前存储为数组第五个元素的指向const-B的引用。

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

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