2014-10-18 41 views
-3

C++:如果使用引用的點是要更改原始變量的值,爲什麼要使用const引用傳遞? [C++]

例如,如果我們想要更改實際變量的值,則使用「通過引用傳遞」。

那麼什麼是「通過const引用」?它說它不允許我們改變變量的值。

好的。那麼爲什麼不首先使用「通過價值」? :/「Pass By Value」也不會改變變量的值。它會改變臨時副本的值。

那麼爲什麼要使用CONST參考? O_O?我希望你能找到我。

請幫我清除疑問。

+0

如果按值傳遞,則必須調用複製構造函數。對於像int這樣的東西來說,它確實很微不足道,但是像數千字節的字符串這樣的東西很難複製,而如果你傳入引用,那麼在技術上只傳遞指向該內存的指針,更好的語法 – Creris 2014-10-18 14:33:15

回答

4

我假設你的意思是你爲什麼

int foo(int const& bar) 

,而不是

int foo (int bar) 

如果這是你的問題,通過引用傳遞使用,使副本不需要進行。在上面的例子中,它是微不足道的,因爲參數是int。但是,如果它是一個大的vectormap,你當然不會希望通過價值傳遞,因爲它會做一個副本。

所以如果你只是想通過引用來避免一個副本,但不希望變量是可變的,你可以使它成爲const引用。

+0

「你肯定不會想要通過價值傳遞,因爲它會做一個副本。「但有時你需要一份副本。 – juanchopanza 2014-10-18 14:35:18

+0

嗨。非常感謝回覆如此之快。我還有一個問題。編輯:我想我知道了。今天我太困惑了。在做這個線程之前,我也讀過其他類似的問題。 – Vipulcoolrule 2014-10-18 14:45:44

相關問題