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++中做这样的事情?
只需在初始化列表中调用相关的基类构造函数:
class TileGrass : public Tile
{
public:
TileGrass() : Tile(some_color)
{
// ....
}
~TileGrass();
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
275 次 |
| 最近记录: |