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

标签 c++ object methods constructor

我有 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/

相关文章:

java - 流式传输多个属性 - Java 8(基本示例)

c++ - 类违反三(五)规则时的编译器警告

javascript - 使用 Jquery 计算对象字面量中的对象数

java - 斐波那契方法返回序列中的第 n 个数字

javascript - 在 for 循环中运行类中的方法

jquery - jQuery .attr() 多个方法中计算的 attributeName?

c++ - 尝试从 std::array 将 .data() 编译为 c++20 中的 constexpr 函数时出错

C++字符串问题

c++ - 在模板化的嵌套和继承类中未检测到变量

java - java中存储对象的数据集