2017-04-09 89 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