c++ – expression preceding parentheses of apparent call must have (pointer-to-) function type
c++ – expression preceding parentheses of apparent call must have (pointer-to-) function type
For anyone else this might also be because of redefinition of a method or property name. i.e a property and method might have the same name
The error indicates trying to call a function max() that is not defined as a function. Change parenthesis after const keyword to after the identifier max:
T max const()...
to
T max() const ...
c++ – expression preceding parentheses of apparent call must have (pointer-to-) function type
- Add required header inclusion and
using
- Add
:
afterpublic
- Move
const
to proper position
template <typename T>#include <iostream>
using std::cout;
using std::endl;
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;
}
Related posts on c++ :