gpt4 book ai didi

C++宏导致空指针

转载 作者:行者123 更新时间:2023-11-30 00:58:01 24 4
gpt4 key购买 nike

我想知道是否有人可以向我解释这个宏。

#define Q_DECLARE_PRIVATE(Class) \

inline Class##Private* d_func() { return reinterpret_cast<Class##Private
*>(d_ptr); } \

inline const Class##Private* d_func() const { return reinterpret_cast<const
Class##Private *>(d_ptr); } \

friend class Class##Private;

我有一个使用 QT 的应用程序,它崩溃并在以下代码段的最后一行出现访问冲突异常。

class Q_GUI_EXPORT QWidget : public QObject, public QPaintDevice
{
Q_OBJECT
Q_DECLARE_PRIVATE(QWidget)

( full source here )

什么会导致最后一行的空指针操作?

最佳答案

编译器可以最好地解释它:

g++ -E foo.cc

将在通过预处理器后将 foo.cc 输出到标准输出。它可以让您了解编译器看到的内容(尤其是使用 token 粘贴时)通常不太明显。

关于C++宏导致空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7020464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com