Callback's flaws

前端 未结 3 1045
醉酒成梦
醉酒成梦 2021-01-22 16:04

From: http://doc.qt.nokia.com/4.7/signalsandslots.html

Callbacks have two fundamental flaws: Firstly, they are not type-safe. We can never be certain

3条回答
  •  有刺的猬
    2021-01-22 16:43

    Please look at sqlite3_exec() as a good example. It's void* parameter is a pointer to a "context object" that is passed into the callback function when the latter is called. It's totally up to the user to be sure that this void* points to a type he expects.

    For example, you need some complex class as a "context object". You pass an address of an object of that class into sqlite3_exec() and it's implicitly converted into void*, then when your callback is called you have to cast it back from void* and noone catches you if you cast it to the wrong type.

提交回复
热议问题