2010-11-14 14 views
4

Comment puis-je retourner le pointeur de la classe Foo en utilisant ses fonctions. La raison pour laquelle je demande est parce que je veux faire ce travail de codeRetour du pointeur de classe via la fonction

Class fo 
fo.MakeA(34.5777).MakeY(73.8843); 

Merci beaucoup à l'avance

+1

Ceci est appelé « Méthode Enchaînement », et à mon avis, il est une abomination. Il ne vous épargne rien, rend le code confus et vous offre de nombreuses opportunités de bogues. –

Répondre

6

En supposant que vous avez besoin d'un type de retour de référence;

class foo { 
public: 
    foo& MakeA(float a) { 
    // MakeA code logic here... 
    return *this; 
    } 
    foo& MakeB(float b) { 
    // MakeA code logic here... 
    return *this; 
    } 
} 

Sinon, vous pouvez simplement retourner une copie (foo au lieu de foo&).

+0

wow merci qui a bien fonctionné! – pondigi

+0

@pondigi; vous êtes le bienvenu – Carlos

2

Vous souhaitez utiliser un indexeur pour votre classe.

Rendre le type de retour pour (MakeA, MakeY) le même type de données que la classe (avec la référence &).

et à la fin de chaque méthode mis

return *this;