【发布时间】:2013-01-08 12:52:23
【问题描述】:
我想从方法调用中返回一个signle对象,其中包含在该方法中创建的多个对象。
Results calculate() {
Foo f;
Bar b;
...
Results r(f, b);
return r;
}
class Results {
private:
?
public:
Results(Foo& f, Bar& b);
Foo? getFoo();
Bar? getBar();
}
a) Results 成员变量应该是指针吗?
private:
Foo* foo;
Bar* bar;
public:
Results(Foo& f, Bar& b) {
this->foo = &f;
this->bar = &b;
}
b) getFoo 应该返回 Foo、Foo& 还是 Foo*?
【问题讨论】:
-
您到底想达到什么目的?也许通过引用传递对象比创建一个包含要返回的对象的新对象更好。
-
@Skalli 方法
calculate创建了多个对象,这些对象只能放在一起才有意义。通过引用传递输出参数对我来说在风格上很奇怪,有什么优势? -
好吧,没有野指针是一个优势。但我喜欢 mfontaninis 解决方案。但是,如果您有两个以上的对象,则需要一种不同的方法。
标签: c++ oop pointers reference