C++ C++;继承构造函数

C++ C++;继承构造函数,c++,inheritance,constructor,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
,它有一个带有
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
需要用颜色参数继承
Tile
构造函数。但是,
TileGrass
对象已经知道它需要为超类提供什么颜色,所以我不想在创建新的
TileGrass
对象时传入
color
对象。在Java中,我可以执行以下操作:

public class TileGrass extends Tile {

public TileGrass() {
    super(color object);
}
}

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

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

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

  ~TileGrass();
};

在C++(11)中,继承构造函数意味着能够调用基类的构造函数来构建派生对象。在这里,您只需要在派生构造函数中调用一个特定的基构造函数,这是非常标准的…@user331633:另外,请注意,
~Tile()
应该声明为virtual。有关原因的详细信息,请参阅。@Edward仅当您计划使用多态性时,我相信这实际上在ISO标准中也被称为继承构造函数。@TheFloatingBrain继承构造函数指的是另一种东西。例如,
使用Tile::Tile
可以让您构建
TileGrass t(某种颜色)无需声明和定义
TileGrass(Color&)
@TheFloatingBrain See@Drop我忘了,谢谢:-)@juanchopanza谢谢我有点忘了:-)