gpt4 book ai didi

c++ - lang支持__null吗?

转载 作者:行者123 更新时间:2023-12-01 15:04:12 24 4
gpt4 key购买 nike

当我使用clang++版本5.0编译以下程序时,结果是

error: initializer on function does not look like a pure-specifier


extern void print(void *ptr);

#define NULL __null

class IInterface
{
public:
virtual void method1() = NULL;
};


int main()
{
void *ptr = NULL;
print(ptr);
return 0;
}

似乎lang不支持 __null吗?但是stackoverflow中的一些帖子建议clang支持 __null。如果是这样,我为什么会收到此错误。有人可以建议这里发生了什么吗?

链接: https://godbolt.org/z/-f3Kf9

最佳答案

纯虚函数的语法仅为= 0。例如,允许使用virtual void do_stuff() = 0,但不允许使用virtual void do_stuff() = nullptr

Clang确实支持__null,但是编译器内部并不意味着声明虚函数。
NULL可以用于纯虚函数的唯一原因是某些系统将其定义为0,但您不应依赖于此。一些编译器也可能使用0LL(void*)0

如果可以,则应使用nullptr而不是NULL声明空指针。这是最好的解决方案,可以在较早的标准中进行仿真。

要声明纯虚函数,请使用= 0。这是声明纯虚函数的最简单且通常的方法。

关于c++ - lang支持__null吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58736278/

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