我开始学习c ++,据我所知,我只能找到原始类型作为类成员。
为什么以下内容给我一个错误:缺少类型标识符 - 假设为int?
class CarManager
{
public:
void Drive();
private:
Car car;
};
尝试了我能想到的所有组合:
Car car = new Car();
Car *car = new Car();
Car &car = new Car();
所有人都有自己的错误。
答案 0 :(得分:1)
首先,必须定义Car
:在CarManager定义之前添加#include "Car.h"
。
然后,如果car属性是一个对象(在您的示例中提出),它必须具有默认构造函数或在CarManager构造函数上初始化:
class CarManager
{
public:
CarManager() : car(...construction parameters...) {} // to be moved in cpp file, of course!
void Drive();
private:
Car car;
};
注意:如果它是一个指针(Car* car;
)或一个引用(Car& car;
),你不需要包含Car.h,前向声明会做(class Car;
而不是#include "Car.h"
)。然后,在初始化指针/引用时,从CarManager.cpp中包含Car.h。
让