我有一个类Tile
,它有一个参数为Color
对象的构造函数:
class Tile
{
public:
static const int size = 32;
Tile();
Tile(Color &color);
void render(int x, int y);
Color getColor();
~Tile();
private:
Color _color;
};
然后我有一个子类TileGrass
,它继承了Tile
:
class TileGrass : public Tile
{
public:
TileGrass();
~TileGrass();
};
现在的问题是TileGrass
需要使用Color参数继承Tile
构造函数。但是,TileGrass
对象已经知道它需要为超类提供什么颜色,所以我不想在创建新Color
时传递TileGrass
对象宾语。在Java中,我可以这样做:
public class TileGrass extends Tile {
public TileGrass() {
super(color object);
}
}
我怎样才能在C ++中做这样的事情?
答案 0 :(得分:7)
只需在初始化列表中调用相关的基类构造函数:
class TileGrass : public Tile
{
public:
TileGrass() : Tile(some_color)
{
// ....
}
~TileGrass();
};