[英]C++ Parameter passing for class constructor (reference)
之間有什么區別?
classConstructor(const std::string theName);
和
classConstructor(const std::string& theName);
由於構造函數只是初始化成員,所以這2條語句之間有什么區別嗎?
當在變量名前使用'&'字符時,表示此變量將作為傳入參數中的一個成為SAME。 當我說相同的時候,我的意思是在記憶中。 有點像取消引用的指針。
這只是一個優化。 您將在此處使用相同的內存空間,而不是僅在此處為構造函數在內存中創建新變量。 在這里,用一個簡單的字符串,差異可以忽略不計,但請想象一下,例如,有一個巨大的對象向量。
有時,將其用作C中的指針非常有用。您可以在另一個函數中修改變量而無需傳遞指針。
最后,這稱為“參考”;)
希望你能得到幫助;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.