Чистая виртуальная константная функция С++ Как я могу объявить чистую виртуальную функцию-член, которая также является константой? Могу ли я сделать это так? virtual void print() = 0 const; или как это? virtual const void print() = 0; Ответ 1 Чтобы объявить константную функцию-член, поместите ключевое слово const после закрывающая скобка списка аргументов. Итак, это должно быть: virtual void print() const = 0; Ответ 2 Допускается только форма virtual void print() const = 0. Взгляните на спецификацию грамматики в С++ 03 §9/2: член-описатель: декларатор pure-specifier opt declarator константа-инициализатор opt идентификатор opt: константное выражение чисто спецификатор: = 0 const является частью декларатора - это cv-qualifier-seq opt в прямом деклараторе (§8/4): описатель: прямой описатель ptr-operator * declarator * прямой описатель: описатель-идентификатор direct-declarator ( параметр-объявление-предложение ) cv-qualifier-seq opt исключение-спецификация opt direct-declarator [ константное выражение opt] ( declarator ) Следовательно, = 0 должен появиться после const. Ответ 3 Конечно, вы можете. Правильный синтаксис: virtual void print() const = 0; Ответ 4 Попробуйте следующее: - virtual void print() const = 0;
Ответ 1 Чтобы объявить константную функцию-член, поместите ключевое слово const после закрывающая скобка списка аргументов. Итак, это должно быть: virtual void print() const = 0;
Ответ 2 Допускается только форма virtual void print() const = 0. Взгляните на спецификацию грамматики в С++ 03 §9/2: член-описатель: декларатор pure-specifier opt declarator константа-инициализатор opt идентификатор opt: константное выражение чисто спецификатор: = 0 const является частью декларатора - это cv-qualifier-seq opt в прямом деклараторе (§8/4): описатель: прямой описатель ptr-operator * declarator * прямой описатель: описатель-идентификатор direct-declarator ( параметр-объявление-предложение ) cv-qualifier-seq opt исключение-спецификация opt direct-declarator [ константное выражение opt] ( declarator ) Следовательно, = 0 должен появиться после const.