所以我有三个课程,我们可以叫一辆车,一辆发动机和一台定子马达。他们每个人都依赖于另一个。因此,汽车有发动机,发动机有定子电机。
以下是我在C ++中声明类的方法:
class Car {
private:
bool Has_Windows;
Engine _Eng_;
public:
Car(bool Windows, Engine _Eng): Has_Windows(Windows), _Eng_(_Eng){}
};
Class Engine {
private:
bool Racing_Car;
Stator_Motor s_motor;
public:
Engine(bool Car_Type_Engine, Stator_Motor _s_motor): Racing_Car(Car_Type_Engine),
s_motor(_s_motor){
}
};
Class Stator_Motor {
private:
bool AC_220;
public:
Stator_Motor(bool Voltage_Type): AC_220(Voltage_Type);
};
在主要内容中,我将C初始化为:
Car C(true, Engine(true, Stator_Motor(true)));
现在问题就在这里,但是当我写这篇文章时,Visual Studio中的Intellisense确实找到了Stator_Motor构造函数定义,但是一旦我输入它,它就说它找不到具有类似参数的Engine的定义。这是为什么?
答案 0 :(得分:1)
在C ++中,您需要在使用之前声明您正在使用的符号。由于您没有对类使用指针或引用,因此实际上必须在使用它们之前对它们进行定义。
所以你必须以相反的顺序定义类:
class Stator_Motor { ... };
class Engine { ... };
class Car { ... }
此外,Stator_Motor
中的构造函数名称错误。