如何返回在另一个类中聚合的点对象?

时间:2011-11-23 05:55:55

标签: c++ class composition aggregation

如何返回在另一个类中聚合的点对象?我正在尝试返回一个点对象,它是quad类的私有成员。我编写了函数并编译,但我不知道调用该函数的正确语法。

Point Quad::getA()
{
    return Point a;
}


 void Quad::check()
 {
    cout << this->getA();  //will not work
 }

3 个答案:

答案 0 :(得分:0)

return Point a;错了。您可以创建一个对象,然后返回或在return语句本身中创建对象。

正确的语法:

Point Quad::getA()
{
    Point a;
    return a;
}


Point Quad::getA()
{
    return Point();
}

答案 1 :(得分:0)

这将有效:

class Quad {
  Point a;
  Point getA();
  void check();
};

Point Quad::getA()
{
    return a;
    // or: return Point(); 
    // to return a new point
}

void Quad::check()
{
    cout << getA(); // requires << be overloaded
    // perhaps this is what you want:
    // cout << getA().x;

}

答案 2 :(得分:-1)

内部课程

 Point* p;

在GetA()函数中。

if (p== null) {
   p= new Point();
 }
return p;

返回指针将是一个更好的解决方案。在程序的整个生命周期中维护单个指针将使开发人员更容易正确地销毁它。供参考http://en.wikipedia.org/wiki/Singleton_pattern

抱歉,我的不好。心中有这个,但错误地传达了它。