Я искал какой-то пост о объявлении виртуальной функции, уверовавшиеПочему виртуальный void test() = 00 действителен, но действительный void test() = + 0 и действительный void test() = - 0 недействителен?
=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;
не удалось скомпилировать?
Если '= 00;' компилируется, напишите ошибку разработчикам вашего компилятора. –
Очень похоже на [Чистые виртуальные функции в C++ 11] (http://stackoverflow.com/q/20861346/1708801) –
gcc 4.9.2 правильно сообщает «ошибка: недействительный чистый спецификатор (разрешено только« = 0 ») до ';' лексема». – TonyK