使用组合C ++访问私有数据成员

时间:2017-04-09 15:46:55

标签: c++ composition

我正在用C ++编写一个程序,我必须使用合成。我有服务类,车辆和日期等级。在我的车辆类中,我有一个服务对象。我试图在车辆类中的函数内使用服务类的服务变量,但我收到了C2248错误。如果我在该类中有一个服务对象,我是否应该能够使用obj.variablename访问数据?我如何才能访问这些变量?

以下是代码的各个部分:

class service
{
   int serviceopt;
   int months_service;
   char description[150];
   date last_service;
   date next_service;
   int error;
   //code
}; 
class vehicle
{
  service obj;
  char model[50];
  char license[10];
  int year;
  //code
  void display_license(void)
  {
    cout<<endl<<"License= "<<license;
    cout<<endl<<"Vehicle model "<<model;
    cout<<endl<<"Make year "<<year;
    cout<<endl<<"Service to be done: "<<obj.description; //cannot access the variable
  }
};

1 个答案:

答案 0 :(得分:0)

我认为定义如下:

struct service
{
    int serviceopt;
    int months_service;
    char description[150];
    date last_service;
    date next_service;
    int error;
    //code
}; 

然后

class vehicle
{
private:
    struct service obj;
    // other members
    // ...
}

可能符合您的要求。