C ++类构造函数的参数传递(参考)

时间:2014-06-09 06:51:10

标签: c++ reference parameter-passing

有什么区别:

classConstructor(const std::string theName);

classConstructor(const std::string& theName);

由于构造函数只是初始化一个成员,这两个语句之间有什么区别吗?

1 个答案:

答案 0 :(得分:0)

当您使用'&'对于您的变量名称,这意味着该变量将是传入参数的SAME。当我说同样的话,我的意思是,在记忆中。它有点像一个解除引用的指针。

这只是一种优化。而不是仅为您的构造函数在内存中创建新变量,而是使用相同的内存空间。这里有一个简单的字符串,差异可以忽略不计,但想象一下巨大的对象向量(例如)。

有时将它用作C中的指针是有用的。您可以在不传递指针的情况下在另一个函数中修改变量。

最后,这被称为"参考" ;)

希望你能帮忙;)