如何将"&player"对象传递到另一个继承的类构造函数("score")中?

How to pass "&player" object into another inherited class constructor ("score")?

本文关键字:构造函数 继承 score player 对象 另一个      更新时间:2023-10-16

我是C++的新手,我正在创建一个小程序来了解编程语言中的继承。

据我所知,继承是指您有权获得父类/基类的所有成员函数和值。现实生活中的一个类比是继承我父亲的一些身体特征,比如眼睛的颜色等(尽管我希望我能继承他的商业头脑…)

无论如何,我要做的一件事是尝试将一个已经初始化的对象传递到继承的类构造函数中。

这是我迄今为止的代码:

#include <string>
#include <iostream>
using namespace std;
class player{
private:
    string name;
    int level;
public:
    player(const string &n, const int &l) : name(n), level(l){};
    string getName() const {return name;}
    int getLevel() const {return level;}
};
class score: public player{
private:
    int scores;
public:
    score(const int &s, const string &n, const int &l) : player(n, l), scores(s){};
    void setScore(int newScores){scores = newScores;}
    int getScore() const {return scores;}
};
int main(){
    player steve("steve", 69);
    cout << steve.getName() << endl;
    cout << steve.getLevel() << endl;
}

基本上,我想通过引用将在main()程序函数steve中初始化的对象传递到score类中的构造函数中。但是,我不知道该怎么做?它会是类似score(const player &p, const int &s) : player(&p), scores(s)的东西吗??我知道如何传递类似成员的值,但我对传递对象本身感兴趣?

如果有人能在这里帮助我,那将意义重大,因为我真的很喜欢编程,尤其是C++

不能将基类(player)的对象扩展到子类(score)的对象,因为这需要在原始对象之后直接分配更多的内存空间来存储子类的附加元素。

在您的示例中,您可以定义此构造函数来为新的score对象复制player对象中的值:

score(const player &p, const int &s) : player(p.n, p.l), scores(s){};

如果您只想链接播放器对象,那么score类必须包含指向该对象的指针。