【发布时间】:2014-07-13 10:45:44
【问题描述】:
这种错误让我感到困惑......
代码:
class TankSystem
{
//
// instance variables
//
private:
TankController _tlTank;
TankController _trTank;
TankController _blTank;
TankController _brTank;
Pump _leftPump;
Pump _rightPump;
//
// constructor methods
//
public:
TankSystem( TankSystemInfo info, PumpInfo left, PumpInfo right )
{
_tlTank = TankController( info.tanks[0] );
_trTank = TankController( info.tanks[1] );
_blTank = TankController( info.tanks[2] );
_brTank = TankController( info.tanks[3] );
_leftPump = Pump( left );
_rightPump = Pump( right );
}
这里我有一个包含 6 个数据成员的系统:4 个坦克对象和 2 个泵对象。
我得到了这个错误...
include/TankSystem.hpp:32:5: 错误:'TankSystem' 的构造函数必须 显式初始化没有的成员 '_tlTank' 默认构造函数 TankSystem( TankSystemInfo 信息,PumpInfo 左侧,PumpInfo 右侧) ^ include/TankSystem.hpp:20:20: 注意:这里声明了成员 TankController _tlTank; ^ include/TankController.hpp:26:7: 注意:此处声明的“TankController”类 TankController
每个实例变量一次。所以我在这里总共得到6个错误...... 硬件:2011 11' MacBook Air
操作系统:OSX 10.9.3
编译器:Apple LLVM 5.1 版 (clang-503.0.40)
【问题讨论】:
-
因为如果你的类有其他类的成员,它们将在构造函数之前被初始化。搜索“初始化列表”以获取更多信息。
-
语法很好。