传递对象与传递引用/指针?

Lem*_*ons 2 c++ oop

因此,正如我们所有人都希望的那样,在面向对象编程时,当你需要以某种方式访问​​另一个类的方法中的类的实例时,你转向通过参数传递该实例.

我很好奇,当涉及传递一个Object或指向该对象的指针时,在良好实践/不易破坏事物方面有什么不同?

The*_*Saw 8

养成通过引用传递对象的习惯.

void DoStuff(const vector<int>& values)
Run Code Online (Sandbox Code Playgroud)

如果需要修改原始对象,请省略const限定符.

void DoStuff(vector<int>& values)
Run Code Online (Sandbox Code Playgroud)

如果您希望能够接受空/无应答,请通过指针传递它.

void DoStuff(vector<int>* values)
Run Code Online (Sandbox Code Playgroud)

如果要对本地副本执行操作,请按值传递.

void DoStuff(vector<int> values)
Run Code Online (Sandbox Code Playgroud)

当你引入大量并发时,问题才会真正出现.到那时,你将知道何时不使用某些传递技术.

  • 最完整的答案,你可以补充一点,传递值使用复制构造函数(和签名的例子). (2认同)