有什么区别:
classConstructor(const std::string theName);
和
classConstructor(const std::string& theName);
由于构造函数只是初始化一个成员,这两个语句之间有什么区别吗?
答案 0 :(得分:0)
当您使用'&'对于您的变量名称,这意味着该变量将是传入参数的SAME。当我说同样的话,我的意思是,在记忆中。它有点像一个解除引用的指针。
这只是一种优化。而不是仅为您的构造函数在内存中创建新变量,而是使用相同的内存空间。这里有一个简单的字符串,差异可以忽略不计,但想象一下巨大的对象向量(例如)。
有时将它用作C中的指针是有用的。您可以在不传递指针的情况下在另一个函数中修改变量。
最后,这被称为"参考" ;)
希望你能帮忙;)