2

私は苦労しています、私は今C ++でクラスを学んでいます、ここに私が持っている問題があります、私はコンストラクタを宣言して定義する必要があります、私が何をしているのかわかりません私は試しましたが、結果を得ることができませんでした助けてください

 #include <iostream>
 using namespace std;

 class exercise
 {
 public:
      //declaration: constructor of class exercise
      int public_var;
      int get_private_var();
 private:
      int private_var;
  };

 //definition: constructor of class exercise
 int exercise::get_private_var()
 {
      return private_var;
 }

 int main()
 {
      exercise object(2,3);
      int pub_var = object.public_var;
      int pri_var = object.get_private_var();
      cout << pub_var <<' '<<pri_var<<endl;
      return 0;
 }
4

4 に答える 4

3

サンプル コンストラクターは次のようになります。

class exercise
{
public:
  exercise(int,int);
  int public_var;
  int get_private_var();
private:
  int private_var;
};

//Constructor definition
exercise::exercise(int a, int b)
{
  public_var = a;
  private_var = b
}
//rest of member functions
于 2013-03-11T14:16:56.747 に答える
0

コンストラクターを使用してクラスを作成する方法は次のとおりです

class a
{
public:
int pubvar;
a() //default constructor
{
pubvar =1;
privar =2;
}
a(int one, int two) //constructor with intializing
{
pubvar = one;
privar = two;
}
private:
int privar;
}

現在、デフォルトの初期化は

a myclass;

変数で初期化するのは

a myclass(4,2);

それが役立つことを願っています

于 2013-03-11T14:21:48.633 に答える
0

コンストラクターを宣言するには、

class exercise
 {  
   public:
     //declaration: constructor of class exercise
     exercise();
     int public_var;
     int get_private_var();
   private:
     int private_var;

};

(通常は .cpp ファイルで) 実装するには、次のことを行う必要があります。

exercise::exercise()
{  
   //your code here
}

幸運を

于 2013-03-11T14:17:23.643 に答える
0

get_private_varコンストラクタではありません。これは、実行時に呼び出されるobject.get_private_var()関数です。これは、典型的なメンバー関数です。

コンストラクターは、オブジェクトを構築するときに呼び出される関数です (意味がありますよね?)。あなたの場合、次の場合に使用されます。

exercise object(2,3);

この行は、呼び出されて値とそのコンストラクターに渡されたexerciseオブジェクトを構築します。これらの値をおよびメンバーに割り当てたいようです。object23public_varprivate_var

まず、コンストラクターを宣言する必要があります。

class exercise
{
 public:
  exercise(int, int); //declaration: constructor of class exercise

  int public_var;
  int get_private_var();
 private:
  int private_var;
};

ご覧のとおり、コンストラクターは、戻り値の型がないことを除いて、他のメンバー関数と同じように宣言されています。戻り値の型は明らかにクラス自体であるため、これは理にかなっています。ここでは、2 つの引数を指定しています。

次に、 を定義した方法と同様に、コンストラクターを定義する必要がありますがget_private_var、ここでも戻り値の型はありません。

exercise::exercise(int x, int y)
{
  public_var = x;
  private_var = y;
}

そして、あなたは完了です。このコンストラクターは、渡された値をパブリック メンバーとプライベート メンバーに割り当てるだけです。

ただし、メンバー初期化リストを使用して、このコンストラクターを実装する少し良い方法があります。

exercise::exercise(int x, int y)
  : public_var(x), private_var(y)
{ }
于 2013-03-11T14:18:42.823 に答える