对不起,这是一个非常愚蠢的问题。我是应届C ++学生...
我试图理解我在网上找到的C ++代码,用于类似游戏的太空射击游戏。我想在我的项目中使用它。英雄向敌人射箭。它有&ss,ss.X和!ss,但我不知道它们的含义。什么的。之间的变量是什么意思? &ss是什么意思?您是否可以分享与此相关的任何主题或课程?还是您知道这些被称为什么术语?我正在尝试在Google上进行搜索,但是我不知道正确的关键字。
这是怪物击中英雄的时间。这是我的怪物类中的一个函数。
QUESTION MARK
谢谢!
答案 0 :(得分:2)
我认为您需要开始学习c ++基本教程。看一下此页面:https://www.learncpp.com
&ss表示将Hero类型的对象作为引用传递。了解您是C ++的初学者,您不知道通过引用传递的含义。因此,让我们来看一个示例:
如果您将函数声明为void Collision(Hero ss){},然后在main(){}中使用它。
void Collision(Hero ss) {}
int main()
{
Hero MyHero;
Collision(MyHero);
}
这意味着在Collision方法的ss参数内将是MyHero对象的副本。因此,您将对ss进行任何修改,而MyHero不会被修改。
但是如果您声明Collision(Hero&ss){}无效:
void Collision(Hero &ss) {}
int main()
{
Hero MyHero;
Collision(MyHero);
}
这意味着ss将是Myhero对象。这意味着您对ss所做的任何修改都会修改MyHero对象。
答案 1 :(得分:1)
Hero& ss
通过引用传递了Hero
类的对象(通过引用传递是要搜索的术语)。这意味着或多或少地将对象的地址传递给此函数,并且由于它不是const引用,因此可以调用该类的所有方法(const和non-const)。
ss.X
实际上是ss.X()
,并且是X()
中方法Hero
的调用,该方法返回成员变量x
的值。
我在您的示例中没有看到任何!ss
,但是它将调用Hero
中的一个运算符,该运算符返回布尔值,如果返回的值是true
是false
(!是非运算符)。