QVariant空指標處理

2021-07-03 13:51:40 字數 562 閱讀 6334

將多個設定整合到乙個函式(方法)中,一般會通過空指標來判斷是否設定了該項,比如這樣:

setting(integer set1, interger set2)
但是在qt中想要實現如上就比較困難。首先qint32不是乙個物件,而是乙個typedefine,所以無法根據空指標來判斷。最後找到了qvariant,寫出類似的方法:

setting(qvariant qv1, qvariant qv2)
函式寫好,怎麼傳遞值呢?

setting(null, null)會報錯error: conversion from 『long int』 to 『qvariant』 is ambiguous,

setting(nullptr, nullptr)會報錯error: conversion from 『std::nullptr_t』 to 『qvariant』 is ambiguous

甚至你都不知道怎麼傳遞乙個合適的空指標了。google了很久才明白原來這樣寫才滿足需求qvariant(qvariant::int)

關於空指標

臭名昭著的空指標到底是什麼?語言定義中說明,每一種指標型別都有乙個特殊值 空指標 它與同型別的其它所有指標值都不相同,它 與任何物件或函式的指標值都不相等 也就是說,取位址操作符 永遠也不能得到空指標,同樣對 malloc 的成功呼叫也不會返回空指標,如果失敗,malloc 的確返回空指標,這是空指...

空指標常量

用vb.net 敲三層的時候,遇到了乙個素未相識的錯誤 變數 db 在賦值前被使用,可能會在執行時導致null引用異常 源自 dim db as loginmodel.dbutil using conn as new sqlconnection db.connstring 這是資料訪問層中score...

關於空指標

空指標是什麼 c中空意味著它與任何物件與函式的指標值都不相等也就是說我們並不能通過 來得到空位址 其實這在數學邏輯上是矛盾的,但是我們暫且這麼認為 所以空指標在概念上不同於未初始化的指標,因為未初始化的指標可以指向任何地方。每種指標型別都有其空指標,不同空指標的內部表示也不盡相同,儘管程式設計師並不...