首页 > 解决方案 > C ++递增全局声明的计数器

问题描述

假设我有一个全局声明的计数器,它在另一个函数中递增

#include <iostream>
using namespace std;

int count = 0;

string passorFail(int x, int y)
{

    if (x > y)
    {
        return "pass";
        count++;
    }
    else
    {
        return "fail";
    }
}

int main()
{

    int x = 10;
    int y = 5;

    passorFail(x, y);
    std::cout << "Count: " << count << std::endl;
}

但是,当它运行时,它只返回 0,而 Id 喜欢它返回 1。我知道人们会说在函数中声明,但出于我所做的目的,计数必须是全局的。我怎样才能做到这一点?

标签: c++

解决方案


在这个片段中:

return "pass";
count++;

您在增加计数之前从函数返回。您的编译器应该警告这count++;是无法访问的代码。

你需要:

count++;
return "pass";

另外,请不要使用using namespace std;. 例如,如果引入<iostream>名称count(允许这样做),代码将不会执行您想要的操作。


推荐阅读