constでもある純粋仮想メンバー関数を宣言するにはどうすればよいですか?このようにできますか?
virtual void print() = 0 const;
またはこのように?
virtual const void print() = 0;
constでもある純粋仮想メンバー関数を宣言するにはどうすればよいですか?このようにできますか?
virtual void print() = 0 const;
またはこのように?
virtual const void print() = 0;
定数メンバー関数を宣言するに
constは、引数リストの閉じ括弧の後にキーワードを配置します。
したがって、次のようになります。
virtual void print() const = 0;
フォームのみvirtual void print() const = 0が受け入れられます。C++03§9/2の文法仕様を見てください。
member-declarator:
declarator pure-specifier opt declarator
constant-initializeropt
識別子 optconstant:-expression純粋な指定子:
= 0
これは宣言子constの一部です-直接宣言子のcv-qualifier- seqoptです(§8/ 4):
declarator:
direct-declarator
ptr-operator * declarator *direct-declarator:
declarator-id
direct-declarator(parameter-declaration-clause)cv-qualifier-seq opt exception-specification opt
direct-declarator[constant-expression opt]
(declarator)
したがって、の= 0後に来る必要がありますconst。
もちろんできます。正しい構文は次のとおりです。
virtual void print() const = 0;
これを試して:-
virtual void print() const = 0;