C++继承构造函数

use*_*633 -1 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;
};
Run Code Online (Sandbox Code Playgroud)

然后我有一个子类,TileGrass继承Tile:

class TileGrass : public Tile
{
public:
    TileGrass();
    ~TileGrass();
};
Run Code Online (Sandbox Code Playgroud)

现在的问题是TileGrass需要Tile使用Color参数继承构造函数.但是,TileGrass对象已经知道它需要给超类提供什么颜色,所以我不想Color在创建新TileGrass对象时传入对象.在Java中,我可以这样做:

public class TileGrass extends Tile {

public TileGrass() {
    super(color object);
}
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能在C++中做这样的事情?

jua*_*nza 7

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

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

  ~TileGrass();
};
Run Code Online (Sandbox Code Playgroud)