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

C ++内部?


ここでは、クラスの内部を確認します。その前に、内部に関連するデフォルトのコンストラクターを確認します。デフォルトのコンストラクターは、引数をとらない1つのコンストラクター(ユーザーまたはコンパイラーによって定義される)です。ここで、なぜデフォルトのコンストラクターが使用されるのかという疑問が生じます。

デフォルトのコンストラクターが指定されていない場合、コンパイラーは暗黙的にデフォルトのコンストラクターを宣言します。一部のクラス内部を初期化するために、デフォルトのコンストラクターが使用されます。クラスのデータメンバーには影響しません。コンパイラーは、いくつかの異なる状況でデフォルトのコンストラクターを挿入します。クラスがデフォルトのコンストラクターを持つ別のクラスから派生している、またはデフォルトのコンストラクターを持つ他のクラスのオブジェクトを含む1つのクラスから派生しているとします。コンパイラは、現在のオブジェクト内に配置されている基本クラスまたはオブジェクトのデフォルトコンストラクタを呼び出すコードを挿入します。

アイデアを得るために1つのコードを見てみましょう。

#include<iostream>
using namespace std;
class Base {
   public:
      // compiler will create one constructor for the class "Base"
};
class ClassA {
   public:
   ClassA(){
      cout << "ClassA Constructor defined by user" << endl;
   }
   int x; //it will not be initialized
};
class ClassB : public ClassA {
   //compiler will create ClassB constructor and add some code to call
   ClassA constructor
};
class ClassC : public ClassA {
   public:
      ClassC() { //user defined consturctor, but compiler will add
         code to call A constructor
         cout << "User defined ClassC Constructor" << endl;
   }
};
class ClassD {
   public:
      ClassD(){
         // User defined default constructor. The compiler will add
         code to call object of ClassA
         cout << "User-defined consturctor for ClassD Constructor" <<
         endl;
   }
   private:
      ClassA obj;
};
int main() {
   Base baseObj;
   ClassB b;
   ClassC c;
   ClassD d;
}

出力

ClassA Constructor defined by user
ClassA Constructor defined by user
User defined ClassC Constructor
ClassA Constructor defined by user
User-defined consturctor for ClassD Constructor

  1. C++でコンストラクターにベクトルを渡す

    これは、ベクトルをコンストラクターに渡すための単純なC++プログラムです。 アルゴリズム Begin    Declare a class named as vector.       Declare vec of vector type.       Declare a constructor of vector class.          Pass a vector object v as a parameter to the constructor. &n

  2. C++のローカルクラス

    関数内で宣言されたクラスは、その関数に対してローカルであるため、C++ではローカルクラスと呼ばれます。 ローカルクラスの例を以下に示します。 #include<iostream> using namespace std; void func() {    class LocalClass {    }; } int main() {    return 0; } 上記の例では、func()は関数であり、クラスLocalClassは関数内で定義されています。したがって、ローカルクラスとして知られています。 ローカルクラ