C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

スーパークラスコンストラクターC++を呼び出すためのルールは何ですか?


C ++では、いくつかのクラスを派生させることができます。派生クラスのコンストラクターを呼び出すときに、スーパークラス(基本クラス)コンストラクターを呼び出す必要がある場合があります。 Javaとは異なり、スーパークラスの参照変数はありません。コンストラクターがパラメーター化されていない場合は、派生クラスで自動的に呼び出されます。そうでない場合は、派生クラスの初期化子リストにスーパークラスコンストラクターを配置する必要があります。

この例では、最初は引数のないコンストラクターが表示されます。

#include <iostream>
using namespace std;
class MyBaseClass {
   public:
      MyBaseClass() {
         cout << "Constructor of base class" << endl;
      }
};
class MyDerivedClass : public MyBaseClass {
   public:
      MyDerivedClass() {
         cout << "Constructor of derived class" << endl;
      }
};
int main() {
   MyDerivedClass derived;
}

出力

Constructor of base class
Constructor of derived class

次に、パラメーターを受け取ることができるコンストラクターを見てみましょう。

#include <iostream>
using namespace std;
class MyBaseClass {
   public:
   MyBaseClass(int x) {
      cout << "Constructor of base class: " << x << endl;
   }
};
class MyDerivedClass : public MyBaseClass { //base constructor as initializer list
   public:
      MyDerivedClass(int y) : MyBaseClass(50) {
         cout << "Constructor of derived class: " << y << endl;
      }
};
int main() {
   MyDerivedClass derived(100);
}

出力

Constructor of base class: 50
Constructor of derived class: 100

  1. Java 9のサブスクリプションインターフェイスのルールは何ですか?

    サブスクリプション データを仲介する目的で、1人のパブリッシャーと1人のサブスクライバーが共有できます 交換 。それがsubscribe()の理由です メソッドは作成されたサブスクリプションを返しませんが、代わりに voidを返します 。サブスクリプションは、 onSubscribe()を介してのみサブスクライバーに渡されます メソッドコールバック。サブスクリプションインターフェースには、 request()の2つのメソッドが含まれています。 およびcancel() 。 構文 public interface Subscription {    public void re

  2. Java 9のサブスクライバーインターフェイスのルールは何ですか?

    サブスクライバー インターフェイスは、 onNext()を介してアイテムを受信するためにパブリッシャーにサブスクライブします メソッド、 onErrorによるエラーメッセージ () メソッド、または onComplete()を介してこれ以上アイテムが期待されないというシグナル 方法。これらのいずれかが発生する前に、パブリッシャーは onSubscription()を呼び出します メソッド。 public interface Subscriber<T> {    public void onSubscribe(Subscription s);   &nb