最近我看到一個代碼審查過程中下面的代碼片段:構建本地對象 - 常量引用
const QString& temp("some text");
const QString& temp1("some text1");
(...)
if (temp == "whatever")
{
}
// etc
因爲這樣的臨時看起來有點奇怪,我只是想詢問是否有人可以解釋什麼是這種方式構建對象的優缺點?我只想去尋找const對象 - 我錯過了什麼?
最近我看到一個代碼審查過程中下面的代碼片段:構建本地對象 - 常量引用
const QString& temp("some text");
const QString& temp1("some text1");
(...)
if (temp == "whatever")
{
}
// etc
因爲這樣的臨時看起來有點奇怪,我只是想詢問是否有人可以解釋什麼是這種方式構建對象的優缺點?我只想去尋找const對象 - 我錯過了什麼?
你可以選擇一個更好的例子。
使用參考變量將是幾個優點:
1)裁判名稱可能增加一些含義/文檔的代碼。例如:
const QString& protocol_start("ABC1RQA666T");
字符串「ABC1RQA666T」是毫無意義的,但protocol_start可以多加線索,以什麼字符串代表。
2)如果引用被多次使用,那麼使用引用可能會更方便。
3)使用該參考是相當'便宜',因爲畢竟它只是一個別名。
但是在某些代碼中,您可能會看到ref不會多次引用的情況,ref名稱會添加一些額外的文檔值,所以在這些情況下它並不那麼有用。
如果需要的話,總是可以使'temp'成爲一個值並通過const引用傳遞它。 – AMA
_the評論code_ - 這是什麼意思? – 2017-08-24 10:28:26
'代碼審查期間' - 對措辭表示歉意 - 更新了說明。 – ARA
要問的正確的人是編寫代碼的人。如果他們不能證明爲什麼它是這樣寫的,那麼很明顯它應該不能通過審查。 – UKMonkey