2017-04-09 24 views
0

私は別のオブジェクト内にオブジェクトの配列を作成し、配列の大きさを決定しようとしています。オブジェクトの配列を持つオブジェクト

なぜ "obj2T"を "obj2"に割り当てようとするとエラーになるのですか?

ペーストビンコードリンク:https://pastebin.com/kujujP5N

配列の大きさを別のオブジェクト内のオブジェクトの配列を作成し、決定のための正しい構文は何ですか?

#include <iostream> 

using namespace std; 

class classe2 
{ 
    public: 
     classe2(); 

    protected: 

    private: 
}; 

class classe1 
{ 
    public: 
     classe1(int value); 
     void setClasse() 
     { 
     classe2 obj2T[grandezza]; 
     obj2=obj2T; 
     } 

    protected: 

    private: 
     const int grandezza; 
     classe2 obj2[]; 
}; 

int main() 
{ 
    cout << "Hello World!" << endl; 
    return 0; 
} 

エラー:

C:\cppProjects\project\main.cpp||In member function 'void classe1::setClasse()' 
C:\cppProjects\project\main.cpp|22|error: incompatible types in assignment of 'classe2 [((classe1*)this)->classe1::grandezza]' to 'classe2 [0]' 
+0

です。配列があります。そして、彼らを割り当てることはできません。 –

+0

@Revolver_Ocelot申し訳ありません、編集済みです。 – nostyn

+0

動的に作成するか、代わりにベクターを使用します。 – stark

答えて

1

正しい構文は、コードにはベクトルがありません

#include <vector> 

... 

class classe1 
{ 
    public: 
     classe1(int value) : 
      obj2 (value) 
     { 
     } 
    private: 
     std::vector<classe2> obj2; 
}; 
+0

うわー、ありがとう!これはまさに私が探していたものです。私は無知を謝罪し、私はこのライブラリを知らなかった...ベクトルを探して、私は配列だけをオンラインで見つける。 – nostyn

+0

@nostyn良いC++の本を見つけることをお勧めします。 –

+0

あなたは正しいです...私に完全で更新された本をお勧めしますか? – nostyn

関連する問題