【发布时间】:2014-11-28 21:02:36
【问题描述】:
假设我有这样的课程:
class Foo{
Foo* otherFooObj;
Foo* otherFooObj2;
.....
};
最好:
A.
- 使用函数获取成员变量的正确值(
otherFooObj和otherFooObj2的地址等) - 用这些正确的值实例化(构造)一个 Foo 对象。
- 将对象推送到矢量。
或
乙。
- 使用虚拟值(
otherFooObj和otherFooObj2的虚拟地址)实例化 Foo 对象 - 将对象推送到矢量。
- 使用函数将 Foo 对象的成员变量设置为正确的值,一旦它位于向量内。
或
C.
- 用虚拟值实例化一个 Foo 对象
- 使用函数获取正确的值并将 Foo 的成员变量设置为这些值
- 将对象推送到矢量。
现在,我认为这些设计模式之间没有太大区别,我遵循哪种流程并不重要。但我想就此获得更多意见,并想知道是否还有其他我忽略的因素,我应该考虑(我觉得有,也许有指针等)。
【问题讨论】:
-
或者使用emplace_back
-
你到底在烦恼什么?可读性?懒惰写作?
-
@Dieter 你是说它会比上面三个选项更好吗?
-
可能是很好的设计模式,无论是一种“更安全”的编码方式和性能。