C ++继承构造函数

时间:2014-06-30 19:00:33

标签: c++ inheritance constructor

我有一个类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 ++中做这样的事情?

1 个答案:

答案 0 :(得分:7)

只需在初始化列表中调用相关的基类构造函数:

class TileGrass : public Tile
{
 public:
  TileGrass() : Tile(some_color) 
  {
    // ....
  }

  ~TileGrass();
};