我一直在使用CodingMadeEasy的C ++ Made Easy HD教程(如果你不熟悉他,他是一个能够在多种编程语言和库中提供精彩课程的人),最近我一直在学习多态性因为他在教我们面向对象的编程。我一直在理解他一直教给我们的所有东西,但我已经陷入困境,他决定在没有类的实例的情况下从“Player”类调用一个方法。只有一行代码会让我感到烦恼,反过来又会让我误解其余的例子。代码行是:
class Entity
{
protected:
int atkPow;
public:
void SetAtkPower(int value)
{
atkPow = value;
}
};
class Player : public Entity
{
public:
void Attack()
{
cout << "Player Attack: " << atkPow << endl;
}
};
int main()
{
Entity *entity = new Player; //THIS IS THE LINE OF CODE THAT I CAN'T UNDERSTAND
entity->SetAtkPower(10);
delete entity;
}
就我而言,我应该理解所有动态内存必须提供的内容,但实体类的实例如何指向新的播放器?
Here is the CodingMadeEasy tutorial. The bit in which I fail to understand start 8 minutes in.
如果有人可以为我澄清事情,我会非常感激。提前谢谢你:)
答案 0 :(得分:0)
您声明Player
是Entity
。
您指向的行表示“分配新的Player
。让变量entity
为Entity
指针,指向新分配的Player
。{{ 1}}可以指向任何实体,而entity
是Player
,它也可以指向Entity
。