問題記錄 操作符連寫

2022-07-29 21:51:23 字數 828 閱讀 3099

在寫c++**時候出了個么蛾子...乙個容易忽略的錯誤: 比較符號連寫, vb, python惹的禍...腦子裡跟著印象就這麼寫出來了

listitem* menulistmodel::find(int row) const

return null;

}

problem:

1) c++中false可以被隱式轉化為int型別資料0, true則是1; 

2) 操作符計算和讀書時候學的數學比較是不同的;

偽**:i<=j

如果 i=0,j=0,k=1 -- operator<(true, 1) 結果是false (按邏輯來說應該是true), 操作符的計算和數學公式中的理解是不同的;

因為 i,j,k is build-in 型別, 它們用的應該是非成員操作符: 類似這樣 int& operator(int, int), 如果它們是類型別, 可能會有成員操作符, 但那樣也會出錯;

--> i.operator<=(j).operator<(k) --> (true).operator<(1) --> false

當然, 有的時候連寫操作符還是挺方便: 

int

a, b;

a = b =1;

雖然較真一點, 如果是類型別, 還是不要這麼寫;

c++的坑好多, 很多其他語言的語法糖千萬不要隨便用,  雖然我知道這個是基礎中的基礎知識, 但是寫了幾回python什麼的回來就自然容易不注意...要麼是我腦子不夠用, 要麼c++該進化一下了, 起碼我的編譯器的警告系統該進化了.

beego orm insert操作問題記錄

beego 說明文件中的操作 在實際操作學習過程發現乙個設定關健點 乙個資料表中全部欄位是verchar型別,在如下 的編碼執行時 3 寫入行程記錄 id,o.insert inoutdetail 解決方法 在儲存的資料表中欄位處理加乙個id自增字段 型別int 欄位名稱一定是id,通過幾次測試分析...

雜項操作問題記錄

2 主機可以ping同虛擬機器,開發板,但是虛擬機器無法ping通 問題 主機可以ping同虛擬機器,開發板,但是虛擬機器無法ping通 解決方法 關閉防火牆 3 提示 bin sh 1 pushd not found 錯誤 網上解決方法,其實根本原因是 進入 bin目錄,檢視sh的鏈結檔案,顯示如...

c語言操作符 位操作符 移位操作符

1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...