4

重複の可能性:
C++ 仮想/純粋仮想の説明
c++ での仮想関数のインスタンス化の違いは何ですか
? 純粋仮想関数が 0 で初期化されるのはなぜですか?

これは、誰かが私にくれたクラス宣言のメソッドです。そして、「..=0」が何を意味するのかわかりません。それは何ですか?

virtual void Print() const = 0;
4

3 に答える 3

8

= 0、関数を純粋仮想化し、クラスを抽象クラスにします。

抽象クラスは基本的に一種のインターフェースであり、インスタンス化できるようにするために派生クラスを実装する必要があります。ただし、これにはさらに多くのことがあります。これは、C++ でのオブジェクト指向プログラミングの非常に基本的な部分の一部です。これらがわからない場合は、教科書に戻って熟読する必要があります。それらを理解しないと先に進めません。

そうは言っても、仮想関数と純粋仮想関数とは何かについての説明については、この関連する質問を参照してください。いつものように、C++ FAQはそのような質問に対する優れたリソースです。

于 2010-09-05T11:48:10.820 に答える
4

これは、仮想関数がpureであることを意味します。つまり、そのように呼び出すことはできません。関数にはコードがないため、= 0. クラスを派生させ、関数をオーバーライドすることによってのみ、それを呼び出すことができます。純粋仮想関数を持つクラスはインスタンス化できないため、一部の言語では抽象クラス (インターフェース) と呼ばれます。

于 2010-09-05T11:48:47.427 に答える
1

基本的に、関数にコードがないことを意味します。これは、このクラスのインスタンスを使用できないことを意味します。むしろ、それは基本クラスでしかありません。

于 2010-09-05T11:52:41.870 に答える