gpt4 book ai didi

c++ - 将类构造函数作为方法调用

转载 作者:太空宇宙 更新时间:2023-11-03 10:41:54 26 4
gpt4 key购买 nike

我有 2 个类,TournamentMemberPlayer,其中 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com