我有 2 个类,TournamentMember
和 Player
,其中 Player
派生自 TournamentMember
。每个类都有参数构造函数。
TournamentMember
有这个构造函数:
TournamentMember(const char* name, std::string country, int height);
Player
类有这个构造函数:
Player(int number, int goals, std::string position, std::string feet);
我从 Player
类创建一个对象,如下所示:
Player soccer_player(40, 34, "goalkeeper", "right");
每个足球运动员应该有 7 个属性,即姓名、国家/地区、高度、号码、目标、位置、脚。其中 4 个属性是从 Player soccer_player(40, 34, "goalkeeper", "right");
设置的,左边的 3 个应该从类 TournamentMember 中分配。我怎么做?我知道一种方法来自方法(设置方法),但我想用构造函数来做,可能是这样的:(我知道下面的例子是错误的)
soccer_player.TournamentMember("John", "USA", 170);
谢谢
最佳答案
你说Player派生自TournamentMember。所以答案很简单:
在您的 Player 的构造函数中,您可以这样做:
Player::Player(int a, int b, const char* c, const char* d) : TournamentMember(c, b, a) // this is calling the TournamentMember constructor!!! Just like you wanted =D
{
//Do the rest of the construction here
}
编辑:
这是您更新后的问题的答案(请记住,在这个例子中我复制的是 const char* 的地址而不是值。在实际程序中这是错误的,但为了简单起见,我忽略此类问题):
您的 TournamentMember 构造函数应该如下所示:
TournamentMember::TournamentMember(const char* _name, const char* _country, int _height)
{
name = _name;
country = _country;
height = _height;
}
这就是您的 Player 构造函数应该如下所示:
Player::Player(int _number,
int _goals,
int _height,
const char* _name,
const char* _country,
const char* _position,
int _feet) : TournamentMember(_name, _country, _height)
{
number = _number;
goals = _goals;
position = _position;
feet = _feet;
}
关于c++ - 将类构造函数作为方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34110734/