型別引數的坑

2021-07-12 06:02:52 字數 336 閱讀 7534

大家都知道const&型別引數與&型別引數的區別是能否通過形參更改實參

在傳送什麼樣子的引數上面二者還有一點區別,舉個例子

void generate_func(string& s){

cout<<"this is generate"<

generate_func("sssssss");編譯錯誤

無論哪個呼叫都使用了隱式轉換,將字面值轉換為string ,c++不允許將臨時量繫結到&形參上面,具體到這裡就是string&。

至於為什麼不允許呢,沒有這個必要罷了。假設允許的話,也沒有什麼用途,繫結到&上面的是乙個臨時量,失去了&變數的本意,如此c++就將這種情況列為非法

MySQLdb 引數處理的坑

前幾天又有同事掉進了給 sql 的 in 條件傳參的坑,就像 select col1,col2 from table1 where id in 1,2,3 這類 sql,如果是乙個可變的列表作為 in 的引數,那這個引數應該怎麼傳呢?我見過至少這麼幾種 id list 1,2,3 cursor.ex...

Python預設引數的坑

定義乙個函式,傳入乙個list,新增乙個end再返回 def add end l return l 正常呼叫時,結果似乎不錯 print add end 1,2,3 1,2,3,end 使用預設引數呼叫時,一開始結果也是對的,但是再次呼叫時,結果就不對了 print add end end prin...

go語言可變引數的坑

對可變引數不了解的同學,可以先看這篇文章可變引數終極指南 不能通過空介面型別向可變引數傳遞乙個普通的切片,需要將普通切片轉換為空介面切片 可變引數不支援確定引數和slice解包的混合。package main func demo args inte ce func main arg3 inte ce...