如何将"&player"对象传递到另一个继承的类构造函数("score")中?
How to pass "&player" object into another inherited class constructor ("score")?
我是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
类必须包含指向该对象的指针。
相关文章:
- 具有相同名称的类的构造函数继承
- 多复制构造函数继承中的惊人行为
- CRTP 和复制/移动赋值/构造函数继承
- 复制构造函数继承动态分配的数组
- 无法从 c++ 中的构造函数继承
- 在构造函数继承中使用默认构造函数
- 构造函数继承和直接成员初始化
- C++ - 使用私有参数的构造函数继承
- 通过可变参数模板进行C++11构造函数继承
- C++11构造函数继承和不带参数的构造函数
- C++11 - 构造函数继承
- C++构造函数继承
- 使用 C++11 编译器的构造函数继承正在生成错误
- 选择性构造函数继承"Ambiguous resolution"错误
- 什么是构造函数继承
- C++对象中的构造函数继承与方法继承
- C++构造函数继承没有匹配的函数
- C++构造函数继承(从派生类调用构造函数)
- 模板构造函数继承的标准符合语法是什么
- C++构造函数继承错误