2015-07-20 21 views
1

當參數按值傳遞時,對C++中的輸入參數使用const限定符是否合理?對於C++函數的輸入參數使用const限定符有意義嗎?

例如,如果我通過一個原始類型像integer

void function(const int aValue); 

它獲得了相同功能的任何好處,而無需使用const

void function(int aValue); 

有什麼區別,如果我通過我自己的數據類型?

void function(Data aData); 
void function(const Data aData); 

回答

2

這意味着函數體不能修改參數。所以它確實給了你更多的程序穩定性。

同樣的規則適用於你自己的類,儘管你可能想通過const引用傳遞那些值,如果值拷貝是昂貴的。

一些房屋堅持的風格:const除非非const是必要的。

4

由於您正在傳遞值const在這種情況下,您無法爲您停止修改原始對象。它確實阻止你修改函數中的副本。

相關問題