C++ 按值传递类和结构

C++ 按值传递类和结构,c++,class,struct,C++,Class,Struct,我是一名学习计算机科学的学生,在课堂上被教导,我们不应该通过一门课或一个结构的价值,而应该通过引用。这是真的吗?如果是这样的话,我很想知道原因。通过值传递涉及到复制被传递的对象。按引用传递不会创建副本 类或结构对象是否应该仅通过引用传递是有争议的。这取决于如何使用传递的对象。这个问题已经得到了回答,如下所示: 如果你的教授没有详细说明为什么你会通过引用超过价值,我会感到惊讶。这是一个非常有用的可视化,可以看出两者之间的区别: 按值传递将对象的值复制到内存中的新位置,而按引用传递基本上与沿指向原始

我是一名学习计算机科学的学生,在课堂上被教导,我们不应该通过一门课或一个结构的价值,而应该通过引用。这是真的吗?如果是这样的话,我很想知道原因。

通过值传递涉及到复制被传递的对象。按引用传递不会创建副本


类或结构对象是否应该仅通过引用传递是有争议的。这取决于如何使用传递的对象。

这个问题已经得到了回答,如下所示:

如果你的教授没有详细说明为什么你会通过引用超过价值,我会感到惊讶。这是一个非常有用的可视化,可以看出两者之间的区别:

按值传递将对象的值复制到内存中的新位置,而按引用传递基本上与沿指向原始对象的指针传递相同


基于此,应该但可能不清楚通过引用传递比通过值传递有什么好处。通过引用可以节省开销,不必要地复制整个类或结构。

< P>我认为C++中的语句不正确,除非类对象太大,否则会导致性能问题。例如,STL library的std::vector和std::string对象多次被传递,并通过值返回。

但通过值传递对象的优点是什么?如果您不希望对象有任何副作用,即被调用函数不应更改或更改对象,则首选通过值传递,在多线程应用程序中,这是非常首选的,因为我们不希望一个线程改变所有线程的数据。此外,如果对象在内存中很小,它也会很有效。