首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我运行showLocation函数5次时,没有任何响应

当我运行showLocation函数5次时,没有任何响应
EN

Stack Overflow用户
提问于 2022-04-25 22:02:53
回答 1查看 33关注 0票数 0

所以当我运行这个程序时,

代码语言:javascript
复制
#include<iostream>
#include<ctime>

float ex, ey;

class Enemy
{
    public:
        float x, y;
    
        Enemy()
        {
            x = ex;
            y = ey;
        }
    
        void showLocation()
        {
            std::cout<<x<<" , "<<y<<std::endl;
        }
};
int main()
{
    Enemy e;
    for(int i = 0;i<5,i++;)
    {
        ex = rand() % 5 + 1;
        ey = rand() % 5 + 1;
        e.showLocation();
    }
}

我什么也没得到,我做错什么了吗?我得到一个空格,然后上面写着,“进程退出-返回代码0”

EN

回答 1

Stack Overflow用户

发布于 2022-04-25 22:20:28

对象e是在for循环之前初始化的。因此,它的数据成员xy被默认构造函数设置为0.0f (全局变量exey隐式地为零初始化),并且不再更改。

代码语言:javascript
复制
Enemy e;
for(int i = 0;i<5,i++;)
{
    ex = rand() % 5 + 1;
    ey = rand() % 5 + 1;
    e.showLocation();
}

您需要在for循环中声明对象,例如

代码语言:javascript
复制
for(int i = 0;i<5,i++;)
{
    ex = rand() % 5 + 1;
    ey = rand() % 5 + 1;
    Enemy e;
    e.showLocation();
}

在这种情况下,在for循环的每次迭代中,将创建一个新的对象e数据成员,该对象的数据成员将由全局变量exey的计算值初始化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72006163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档