C++11;
给定两个类,A 类和 B 类,其中 A 类存储 B 类的数据成员,是否更有效;
1:创建B类型的对象和A类型,然后将A类型的对象传递给B类型的对象的const引用;
A storage;
B object(1,2,3);
storage.add(object);
2:创建一个 A 类型的对象,并传递一个 B 类型的无名对象,例如;
A storage;
storage.add(B(1,2,3));
这些调用在性能方面是否相同?
现在假设我想要一个类型 A 的向量来存储我传递给类型 A 的类型 B 的对象;无论我是向存储对象传递对已创建对象的引用还是将匿名对象直接传递给 A 类型的对象,我是否会在每次调用 storage.add() 时制作两个 B 类型的副本?
在以 A 类型存储 B 对象的向量的情况下,传递 B 类型的无名对象,将它们存储在向量中,并返回指向向量元素的指针,还是创建 B 类型的对象更有效? ,并将指针传递给 storage.add() 并将我的 B 类型对象存储在指针向量中?
我希望我已经表达了我的意图。如果我的意图不太清楚,我会发布一个代码示例。我只是不确定传递对象最有效的方法是什么时候我还需要通过调用我的存储类来返回它们。