我正在用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
}
};
答案 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
// ...
}
可能符合您的要求。