LoginSignup
0
0

More than 5 years have passed since last update.

Effective C++ (3rd) > 31項 > インタフェースクラス > 具体例

Last updated at Posted at 2015-05-18

引用: Effective C++ 第3版

Personをインタフェースクラスにすると、次のようになるでしょう。

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

純粋仮想関数を持つクラスのオブジェクトを生成することはできないので、Personを使うときには、そのポインタか参照を使うことになります。
...
また、インタフェースクラスを使うには、オブジェクトを生成しなければなりません。そのために、派生クラスのオブジェクトを生成する関数がよく使われます。そのような関数は、一般にファクトリ関数(13項を参照)とか仮想コンストラクタと呼ばれます。これはインタフェースクラスのインタフェースを持つオブジェクトを動的に生成し、そのポインタ(...)を戻す関数です。

上の実装例で"= 0"は純粋仮想関数。
ローベルのC++教室

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0