表观调用括号前的表达式必须具有(指向 - )函数类型

时间:2017-03-05 03:05:26

标签: c++ c++11

我正在学习vs2015社区的C ++模板。这是我的代码,我想定义一个模板类并在main()函数中调用成员函数。

template <typename T>
class Arithmetic {
    T _a;
    T _b;
    Arithmetic() {};
public
    Arithmetic(T a, T b) :_a(a), _b(b) {};
    T max const() { return _a + _b; };
    T minus const() { return _a - _b; };
};

int main() {
    Arithmetic<int> ar(5,6);
    cout << ar.max() << endl;
}

当我构建这个程序时,我在最后一行收到错误。它说:

  

表观调用的括号前面的表达式必须具有(指向 - )函数类型

我该怎么办?

3 个答案:

答案 0 :(得分:4)

该错误表示尝试调用未定义为函数的函数max()。将const关键字后面的括号更改为标识符max:

之后
from itertools import combinations
students = ["Tom","Jeff","Mary"]
schedule = list(combinations(students,2))

html2canvas

答案 1 :(得分:1)

  • 添加所需的标题包含和using
  • :
  • 之后添加public
  • const移至正确的位置
#include <iostream>
using std::cout;
using std::endl;

template <typename T>
class Arithmetic {
    T _a;
    T _b;
    Arithmetic() {};
public:
    Arithmetic(T a, T b) :_a(a), _b(b) {};
    T max() const { return _a + _b; };
    T minus() const { return _a - _b; };
};

int main() {
    Arithmetic<int> ar(5,6);
    cout << ar.max() << endl;
}

答案 2 :(得分:1)

对于其他任何人,这也可能是因为重新定义了方法或属性名称。即属性和方法可能具有相同的名称