Je suis un utilisateur C++ intermédiaire et j'ai rencontré la situation suivante. La définition de classe ci-dessous se compile bien avec un compilateur g ++. Mais je ne peux pas mettre le doigt sur ce que signifie exactement toute la syntaxe.
Je suppose que la fonction operator int()
renvoie un type int
.Syntaxe de surcharge de l'opérateur de conversion implicite
De plus, je ne peux pas comprendre comment utiliser le operator()
surchargé dans main()
class A
{
public:
A(int n) { _num = n; } //constructor
operator int();
private:
int _num;
};
A::operator int() // Is this equivalent to "int A::operator()" ??
{
return _num;
}
int main()
{
int x = 10;
A objA(x); //creating & initializing
// how to use operator() ?
// int ret = objA(); // compiler error when uncommented
return 0;
}
Toute aide sera appréciée.
opérateur 'Surchargé()'? Qu'est-ce qui a surchargé 'operator()'? Votre code n'a pas de 'opérateur()' surchargé. C'est pourquoi vous ne pouvez pas l'utiliser. – AnT
Ouais. Je me suis vraiment trompé L'opérateur de mot-clé m'a emmené ailleurs. – vthulhu
duplication possible de [Que signifie cette syntaxe C++ et pourquoi cela fonctionne?] (Http://stackoverflow.com/questions/3632746/what-does-this-c-syntax-mean-and-why-does-it -work) – sbi