2014-01-22 35 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; - 您不能在构造函数中分配另一个数据对象。这将导致无限递归(我甚至不知道它是否会编译) –

相关问题