J'apprends le modèle C++ sur la communauté vs2015. Voici mon code, je veux définir une classe de modèle et appeler la fonction membre dans la fonction 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;
}
Lorsque je construis ce programme, je reçois une erreur à la dernière ligne. Ça dit:
L'expression précédant les parenthèses d'appel apparent doit avoir un type de fonction (pointeur sur).
Que devrais-je faire?
L'erreur indique que vous essayez d'appeler une fonction max () qui n'est pas définie en tant que fonction. Modifiez la parenthèse après le mot clé const après l’identifiant max:
T max const()...
à
T max() const ...
using
:
après public
const
dans la position appropriée#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;
}