si j'ai la classe CAnalyzer, et que je veux faire un pointeur de cette classe vers le nouveau nom de classe CManager. comment puis-je le faire? note: j'ai besoin de faire le pointeur dans init func dans CAnalyzer. grâceC++ pointer class
Répondre
Par init func, vouliez-vous dire le constructeur?
CAnalyzer::CAnalyzer()
{
CManager *pManager = new CManager();
}
class CManager; // Forward declaration (may not be needed)
class CAnalyzer
{
// Other stuff goes here
private:
CManager *p_manager;
};
Je ne comprends pas ce que vous entendez par « je dois faire le pointeur à l'intérieur d'initialisation func dans CANalyzer ».
+1 Je n'étais pas sûr non plus, mais votre supposition pourrait être plus juste que la mienne –
Je ne suis pas sûr de comprendre exactement ce que vous demandez, donc je vais deviner.
Vous souhaitez écrire une fonction membre de CAnalyzer
qui renvoie un pointeur sur une nouvelle instance d'un CManager
? Vous pouvez le faire comme ceci:
CManager* CAnalyzer::CreateManager()
{
return new CManager;
}
Vous devez cependant utiliser des pointeurs intelligents plutôt que des pointeurs bruts dans l'intérêt d'une programmation robuste.
Cela ne devrait-il pas être CreateManager? – Puppy
@DeadMG: Oui, probablement. Fixé –
- 1. Class with Pointer et Dynamic Arrays
- 2. Bad Pointer? - C++
- 3. C'tor en C++ class
- 4. Boxing Native C++ Pointer
- 5. Pointer math en C#
- 6. C++ Pointer Problème
- 7. Débutant C Pointer Problème
- 8. C Pointer tableaux Initializtion
- 9. C fscanf et pointer
- 10. C Pointer écrire erreur
- 11. Pointer confusion - C++
- 12. C++ Fonction Pointer Syntaxe
- 13. C Déréférence void * pointer
- 14. C++ Fonction Pointer
- 15. C++ Pointer Question
- 16. C++ Pointer GUI QT
- 17. : cible pour pointer vers un .class et non à #id
- 18. C problème, gauche de '->' doit pointer vers class/struct/union/type générique?
- 19. Realloc Invalid Pointer in C
- 20. Java Pointer vs C# IntPtr
- 21. NULL POINTER EXCEPTION de Curseur c
- 22. C#, Component class
- 23. C# class factory newbie
- 24. C# Container Class
- 25. C++ templates - matrix class
- 26. C++ modèle char class
- 27. C# class from xml
- 28. using bigint class C++
- 29. inheriting template class C++
- 30. C++: "Class namespaces"?
Si vous avez un CAnalyzer de classe, vous utilisez la convention de nommage Microsoft icky où chaque classe commence par un 'C'. Si vous décidez de le changer d'une classe à une structure, vous devrez changer CAnalyzer en SAnalyzer ** dans chaque fichier qui fait référence à CAnalyzer **. Mieux vaut ne pas encoder les types de données dans les noms. –
@Thomas: "class" n'est pas un type de données. – ltjax
@Itjax: veuillez indiquer votre référence. "Avec la programmation orientée objet, un programmeur peut créer de nouveaux types de données pour répondre aux besoins de l'application.Un tel exercice connu sous le nom" abstraction de données "et le résultat est une nouvelle classe de données.", Http://searchsoa.techtarget.com/definition/data-type –