Comment fonte classe C ++ type intrinsèque
-
11-10-2019 - |
Question
La question de classe de base C:
Je simple code actuellement qui ressemble à quelque chose comme ceci:
typedef int sType;
int array[100];
int test(sType s)
{
return array[ (int)s ];
}
Ce que je veux, est de convertir « sType » à une classe, de sorte que la ligne « return array [(int) s] » n'a pas besoin d'être changé. par exemple. (Pseudocode)
class sType
{
public:
int castInt()
{
return val;
}
int val;
}
int array[100];
int test(sType s)
{
return array[ (int)s ];
}
Merci pour toute aide.
La solution
class sType
{
public:
operator int() const { return val; }
private:
int val;
};
Autres conseils
class sType
{
public:
operator int() const
{
return val;
}
int val;
};
Pour le travail de make = 5, fournir un constructeur qui prend un int:
class sType
{
public:
sType (int n ) : val( n ) {
}
operator int() const
{
return val;
}
int val;
};
Le compilateur utilisera alors que le constructeur à chaque fois qu'il a besoin de convertir un sType à un int.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow