class myMem{};
class Test{
public:
initMem1(myMem& mInput){/*initialize _mem1*/}
initMem2(shared_ptr<myMem> &pmInput){/*initialize _mem2*/}
myMem _mem1;
shared_ptr<myMem> _mem2;
};
Test myTest;
myTest()
因此,在上面的代码中,成员属于一个类。一个成员是一个值类型,另一个成员是shared_ptr类型。对于班级成员来说哪种方式更好?此外,我还有初始化成员的功能。哪种方法更好?直接通过引用传递给shared_ptr的好处是,通过引用直接传递
一般来说,通过引用传递给shared_ptr而不是直接传递引用的优点是什么?
...一个需要你有'shared_ptr'? – GManNickG
这个问题应该是:“通过引用传递'shared_ptr'而直接传递给'shared_ptr'的优点是什么?”答案是:它更便宜。 – tkausl
对于编译器来说,它们都是不同的类型。你不能真正比较苹果和橘子。 **'测试**和**'shared_ptr **不一样*参考类型*。至于从后者获得前者的性能成本,其可能仅仅是额外间接成本。但后者提供了更多的信息 –
WhiZTiM