c++继承构造函数

C++ inherit constructor

本文关键字:构造函数 继承 c++      更新时间:2023-10-16

我有一个类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对象已经知道它需要给超类什么颜色,所以我不想在创建新的TileGrass对象时传递Color对象。在Java中,我可以这样做:

public class TileGrass extends Tile {
public TileGrass() {
    super(color object);
}
}

我如何在c++中做这样的事情?

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

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