gpt4 book ai didi

c++ - 为什么 virtual void test()=00 有效但 virtual void test()=+0 和 virtual void test()=-0 无效?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:22:49 26 4
gpt4 key购买 nike

我搜索了一些关于虚函数声明的帖子,相信

=0

virtual void test()=0;

是固定句法所以

virtual void test()=NULL;
virtual void test()=false;
virtual void test()=1-1;
virtual void test()=0.0;

和其他声明应该是无效的。

但是我发现了

virtual void test()=00;
virtual void test()=000;
virtual void test()=0000;

还能编译,为什么?

还有,我觉得整数+0和-0其实和0一样(不知道对不对),就像00其实就是0一样,为什么

virtual void test()=+0;

virtual void test()=-0;

无法编译?

最佳答案

来自November 2014 working draft标准:

10.4:

A virtual function is specified pure by using a pure-specifier (9.2)in the function declaration in the class definition.

在 9.2 中我们看到了“pure-specifier”的定义:

pure-specifier:= 0

这表明您的示例不应像您期望的那样编译,因此您应该向编译器制造商提交错误报告。

关于c++ - 为什么 virtual void test()=00 有效但 virtual void test()=+0 和 virtual void test()=-0 无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31045690/

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