[英]using c++ const on user-entered data?
假設我想從cin中讀取一個整數然后使其成為不可變的。 我可以:
int a;
cin >> a;
const int b = a;
然后,我將有一個變量(b)初始化為用戶數據,但不能更改。 但是,我想我在這里濫用const關鍵字。 這是可以接受的嗎? 編譯器似乎沒問題,但我只是想知道它是否從風格的角度來看是正確的。
這完全沒問題。 您可以自由地從非常量數據創建常量變量,甚至是用戶輸入的數據。
你甚至可以編寫一個函數,這樣你就不會在之后有a
變量。 例如:
int read_int(std::istream& in) {
int a;
in >> a;
return a;
}
int const b = read_int(std::cin);
這是一個哲學問題。 :)
在我看來,你沒有做任何風格偏差。 您定義的從該點不要再改變一個變量。 該變量值的歷史可以忽略不計。 :)
沒關系。 您可以放心,在運行程序的上下文中,“b”的值永遠不會改變。
雖然我同意Rob&David,IMO最好在可能的情況下將b
作為參考:
int a;
cin >> a;
const int &b = a;
雖然在int的情況下你可能不會節省太多,如果更大的對象你將保存復制c'tor呼叫和內存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.