class testClass
{
public:
void set(int monthValue, int dayValue);
int getMonth();
int getDay();
private:
int month;
int day;
};
J'ai une classe simple comme on peut le voir ci-dessus. J'essaie de transmettre ses objets à une fonction qui vérifie s'ils sont égaux ou non.passage des membres de la classe à vide *
testClass obj[3];
obj[0].set(1,1);
obj[1].set(2,1);
obj[2].set(1,1);
Tout d'abord, j'ai essayé comme cout << (obj[0] == obj[1]);
, mais il est impossible sans surcharger l'opérateur, en utilisant le modèle etc Donc, je peux le faire les utiliser, mais comment puis-je passer les variables membres à la fonction void*
? Je pensais comme ça, mais je ne peux pas résoudre le problème. Je veux comparer comme
obj[0].getDay() == obj[1].getDay();
obj[0].getMonth() == obj[1].getMonth();
en passant.
Quel est le problème exactement? Je ne comprends pas de votre question. –
Il n'y a absolument aucun besoin de 'void *' ici. Votre 'compare_class' pourrait prendre' const DayOfYear & ', mais vous devrez utiliser des getters publics ou faire de la fonction un' friend'. – crashmstr
Si vous ne voulez pas comparer par 'foo-foo2', alors faites quelque chose d'autre. Je suis extrêmement méfiant de la présomption que tout ce que vous essayez de faire devrait être fait d'une manière qui nécessite des pointeurs de vide. – Hurkyl