错误C2228在简单计数器程序C ++中

时间:2017-10-21 00:05:53

标签: c++

这里第一次,如果我不完全遵循协议,请原谅我。我会根据需要进行调整。我正在尝试制作一个通过计数器递增(或递减)的简单程序。计数器的功能是通过一个类,我正在尝试使用main来测试功能。我很容易错过一些非常简单的东西,就像我一直如此,但我无法弄清楚所以我想我会问这里,因为我经常来这里寻找帮助很容易。我已经尝试过筛选答案,到目前为止没有任何帮助。这是代码:

#include <iostream>
using namespace std;

class counter
{
public:
    counter();
    counter(int begin, int maximum);
    void increment();
    void decrement();
    int getter();

private:
    int count;
    int max;
};

// Default constructor.
counter::counter()
{
    count = 0;
    max = 17;
}

// Constructor that allows you to put in a starting point for the counter
// and a maximum value for the counter.
counter::counter(int begin, int maximum)
{
    max = maximum;
    if (begin > maximum)
    {
        cout << "You input an invalid value to begin. Set to default.";
        count = 0;
    }
    else
    {
        count = begin;
    }
}

// Increments counter by one. If counter would exceed max, then goes to 0.
void counter::increment()
{
    if (count == max)
    {
        count = 0;
    }
    else
    {
        count++;
    }
}

// Decrements counter by one. If counter we go below 0, then goes to max.
void counter::decrement()
{
    if (count == 0)
    {
        count = max;
    }
    else
    {
        count--;
    }
}

// Getter for counter value.
int counter::getter()
{
    return count;
}



int main()
{
    counter test();

    for (int i = 0; i < 20; i++)
    {
        test.increment();
        cout << test.getter() << "\n";
    }
}

出现的错误是:

  

“dsCh2Exercise.cpp(81):错误C2228:'.increment'的左边必须有   class / struct / union dsCh2Exercise.cpp(82):错误C2228:左边的   '.getter'必须有class / struct / union“

提前感谢任何和所有输入!非常感谢!

1 个答案:

答案 0 :(得分:6)

counter test();声明一个名为test的函数,该函数不带参数并返回counter,而不是包含test的名为counter的变量。将该行更改为:

counter test;