10345


インタフェースクラスの勉強をしていて、以下のコードがありました。

[code]

    class Person {
    public:
        virtual ~Person();
        virtual std::string name() const = 0;
        virtual std::string birthDate() const = 0;
        virtual std::string address() const = 0;
        ...
    }
    
[/code]

仮想メンバ関数の右側の = 0 というのはどこかの本で見た記憶があるのですが、名前と意味がよくわかりません。

検索する場合のキーワードを教えていたければ幸いです。


CC BY-SA 3.0
2015-05-18T23:46:56.027
10341
2015-05-19T00:20:45.150
4840
question
c++
virtual std::string name() const = 0; の = 0の用語


virtual を仮想関数といい、`= 0` を付ける事で純粋である事を示します。ですのでこの関数は純粋仮想関数と呼びます。


CC BY-SA 3.0
2015-05-19T00:09:27.410
10344
2015-05-19T00:09:27.410
440
10341
answer


“疑似初期化子”である`= 0`を付けた仮想関数は、純粋仮想関数(pure virtual function)と言います。  
また、純粋仮想関数を一つでも持つクラスは、抽象クラス(abstract class)と言います。


CC BY-SA 3.0
2015-05-19T00:20:45.150
10345
2015-05-19T00:20:45.150
7291
10341
answer