0

所以我有三个类,让我们称之为汽车、引擎和定子电机。它们中的每一个都依赖于另一个。所以汽车有一个发动机,一个发动机有一个定子电机。

以下是我在 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 的定义。为什么是这样?

4

1 回答 1

1

在 C++ 中,您需要在使用它们之前声明您正在使用的符号。而且由于您不对类使用指针或引用,因此实际上必须在使用它们之前定义它们。

所以你必须以相反的顺序定义类:

class Stator_Motor { ... };

class Engine { ... };

class Car { ... }

此外,您的构造函数Stator_Motor名称错误。

于 2013-11-11T10:01:00.760 回答