Eclipse编译器:非静态成员和错误2

Getting 2 ERROR Messeges Eclipse compiler: non static member and error 2

本文关键字:错误 静态成员 编译器 Eclipse      更新时间:2023-10-16

我是c++新手,我一直在做任务培训。该任务是在使用类和访问私有整数时进行计算。

这是我的完整代码。

#include <iostream>
using namespace std;
class Calculatour{
public:
int SumNum(int a, int b){
    cin >> a;
    cin >> b;
    x = a+b;
    return x;
}


private:
int x;
};

int main() {
Calculatour ADD;
cout << ADD.SumNum;
return 0;
}

我在这行得到了一个错误:

cout << ADD.SumNum;

这里写着

对非静态成员函数的引用必须调用ADD calculator using classes.cpp/ADD calculator using classes/src line 37 C/c++问题

我也一直得到这个错误了:

make: *** [src/ADD calculator using classes.]错误1使用C/c++类添加计算器问题

请认为我是语言的新手。所以如果你能提供一个解决方案和解释,这将非常有帮助。

谢谢

调用带参数的方法(或函数)时,即使不使用参数,也必须提供参数。由于在这个方法中,您不打算将参数用于任何用途,也没有强制您包含这些参数的类层次结构,因此您不妨丢弃它们。

#include <iostream>
using namespace std;
class Calculatour
{
public:
    int SumNum()
    {
        int a;
        int b;
        cin >> a;
        cin >> b;
        x = a + b;
        return x;
    }
private:
    int x;
};
int main()
{
    Calculatour ADD;
    cout << ADD.SumNum();
    return 0;
}

思想上更正确的解决方案(Calculator类应该做Calculator的事情,而不是Data In/Out的事情)应该是在main中读入a和b,然后调用SumNum。

#include <iostream>
using namespace std;
class Calculatour
{
public:
    int SumNum(int a, int b)
    {
        x = a + b;
        return x;
    }
    int SumNum(int a) // takes advantage of the stored x value
    {
        x += a;
        return x;
    }
private:
    int x = 0;
};
int main()
{
    Calculatour ADD;
    int a;
    int b;
    cin >> a;
    cin >> b;
    cout << ADD.SumNum(a, b);
    cout << ADD.SumNum(a);
    return 0;
}

编译器没有办法告诉

int SumNum()
{
    int a;
    int b;
    cin >> a;
    cin >> b;
    x = a + b;
    return x;
}

int SumNum()
{
    int a;
    cin >> a;
    x += a;
    return x;
}

,所以你不能利用重载和使用相同的方法名执行不同输入的不同任务。

说你想要

double SumNum()
{
    double a;
    double b;
    cin >> a;
    cin >> b;
    return a + b;
}

接受浮点输入。你不能。您必须更改方法的名称或使用模板。