2014-01-22 34 views
0

我想在我的user.h文件中使用對象(在data.h文件中)的數組。我試過這個東西,如下所示,但我的嘗試不成功。我想要你們的幫助。我的腳本中有什麼不對。請指正如何使用向量來定義一個類的對象的數組到其他類在不同的文件

// data.h文件

class data 
{ 
    private: 
     int id; 
     char name; 

    public: 
     data();  
     int getid() 

      { 
       return id; 
      } 

     void setid(int id) 
      { 
       id = id; 
      } 

     char getname() 

      { 
       return name; 
      } 

     void setname(char name) 
      { 
       name=name; 
      } 
    }; 

//data.cpp文件

data::data(){ 

     int xyz; 
     char pqr; 
     data firstobject; 
     firstobject.setid(10); 
     xyz=firstobject.getid(); 
     firstobject.setname(hello); 
     pqr=firstname.getname(); 
     return 0; 
    } 

//user.h文件

class user 
{ 
    private: 


     vector<data> data11; 
    public: 
     user(); 

     void add_element(int a) 
     { 
      data11.push_back(a); 
     } 

     void get_element() 
     { 
      for(int x=0; x<data11size(); x++) 
      { 
       cout<<data11[x]<<" \n"; 
      }; 
      cout<<" \n"; 
     } 

}; 

//用戶。 cpp文件

user::user() 
{ user object; 
    object.add_element(xyz); 
    object.get_element(); 
} 
+1

有很多你的代碼錯誤:在'add_element'你去了'int'添加到'矢量'這是行不通的。 'data'有一個私有構造函數,所以不能在第一個地方創建。 'setid'正在將'id'分配給iteself(你可以指'this-> id = id'),'name'也有同樣的問題。 'data :: data()'使用一個未定義的名爲'hello'的變量。等等等等 – Sean

+0

我們希望聽到您的意見,怎麼了? (不編譯?不運行?不按預期執行?) – zoska

回答

0

這是您的constructor並定義爲private?如果你沒有任何特別的原因,移動它public

data(); 

同樣的,user()

編輯:有許多其他的事情..解釋你面對什麼問題究竟

+0

是的,這是我的錯誤,我將它公開。你能幫我解決我的問題嗎? – user3213849

+0

是的,提到你有什麼問題..我們會盡量匯聚.. –

0

是那些完全文件?當然,你需要

#include "data.h" 

在user.h

+0

是的,我已經包含了data.h文件.my文件無法編譯 – user3213849

+0

提供編譯器錯誤信息如何? –

+0

還有一些問題: - 構造函數從不返回值,所以刪除返回0; - 您不能在構造函數中分配另一個數據對象。這將導致無限遞歸(我甚至不知道它是否會編譯) –

相關問題