關於 auto 使用的乙個小細節

2022-09-19 09:39:12 字數 649 閱讀 1641

class a

a(const a& other) :

m_a(other.m_a)

int& get_a()

a& get_class()

};

void solve()

output:

a()a(const a&)

0

從output可以看出,auto 自動推導了  a t = _a.get_class(),故呼叫了class a的拷貝建構函式

void solve()

output:

a()2

可以看出 auto&  推導出了  a& t = _a.get_class(),這樣我們就知識對返回的例項引用的操作,節省了額外的開銷

總結,對於 auto 的使用,我們得注意是否加&或者在該情況下auto可能推導出的型別是不是會重新拷貝乙個副本而導致記憶體的申請  

a& get_class() const

錯誤 c2440 「return」: 無法從「const a」轉換為「a &」

const a& get_class() const

正確

關於JSTL中使用EL的乙個小細節

最近的乙個專案中,使用到了jstl標籤和el表示式,希望盡量的擺脫用scrilplet的習慣,使專案的 更加優雅。哈!但在專案開發的過程中,碰到了一些小細節,不得不要注意。其中的乙個是jstl中使用el的時候,在乙個沒有注意的小地方,得不到預期的輸出結果,還令我花費了整整一天多的時間來debug,這...

Junit的乙個小細節

junit的測試時,如果乙個類中有多個jt那麼,jt的執行順序是隨機的,這存在隱患,例如增查刪三個方法的正確順序是 增 查 刪,這個時候可以在類上面新增 fixmethodorder methodsorters.name ascending 表明按照方法的名字來 publicclass produc...

firebug 中的乙個小細節

我們用firebug除錯js程式時,dir出來的函式體會出現幾種顏色 1 black 代表函式變數 包括var定義的字串變數,this.定義的變數內部變數,等等非函式變數 2 green 代表函式 prototype中的函式,靜態函式,所有函式 3 red prototype 被修改時出現,一般情況...