2017-06-18 5 views
-10

私はクラスの学生とクラスのスクールを持っています。どうすればポインタのないスクール内のStudentのメンバーオブジェクトを作成できますか?ポインタなしでC++でメンバーオブジェクトを作成するには?

class Student 
{ ... }; 

class School 
{ 
    Student st1("David"); // error 
    Student *st2;   // ok 

    School() { st2=new Student("David"); } // ok 
}; 

st1オブジェクトの使用方法/作成方法は?私はポインタst2を使いたくない。 ありがとうございます。 コンストラクタあなたはクラスのデータメンバを初期化するために使用できる方法である

class Student 
{ ... }; 

class School 
{ 
    Student david; 
    // Constructor 
public: 
    Student() 
    : david("David") 
    { ; } 
}; 

:データメンバを初期化する

+2

「School」クラスのようなサウンドは、「Student」オブジェクトの「ベクトル」であるフィールドを持つ必要があります。ヘッダーファイルでは 'std :: vector students; – twain249

+6

のようなものがあります。これはC++コンストラクタのもっとも基本的な要素です。あなたはこれを理解できなければ、言語を学ぶことはないでしょうから、先生に話すか、チュートリアルを読み直す必要があります。それは一度に1つの些細なので、1つの質問を学ぶことはできません。 – ShadowRanger

答えて

1

一つの方法は、コンストラクタ方法を使用することです。他のエンティティがクラスのインスタンスを作成できるように、コンストラクタにはパブリックアクセスが必要です。

関連する問題