7
我創建了一個接受函數指針的函數,例如將nullptr分配給函數指針變量是否安全?
typedef CString(*GetLabelFunc)(const CSomeObject* const pObject);
void DoSomething(GetLabelFunc funcGetLabel);
該函數可能會收到一個空指針,並會在這種情況下返回一個空字符串。但我不認爲一個成功的彙編在這種特殊情況下,一個安全的港灣......
現在我想知道,如果通過nullptr
相當於NULL
的 - 使用NULL和nullptr作爲參數時,以及該作品在MSVC++ 2010完全正常函數指針。我問的原因是,例如void*
不接受函數指針(或至少它不應該使用)。所以也許有類似的理由,nullptr不應該用於函數指針 - 這意味着它只能用於對象指針嗎?