-
[C++.net] Classe managée
J'ai un probléme de base et j'aimerai avoir des precisions car c'est vraiment un probléme de merde et res facile a regler je pense :
Je vien de faire mon analyse (diagramme de classe) et je tape mes classe dans mon .h comme d'habitude. je compile : bon : pas de probleme.
Ensuite je rajoute un attribut a ma classe :
System::IO::Ports::SerialPort^ Port1;
Et bien il me dit : en gros que une classe non managée ne peut pas avoir un membre managée comme attribut. Bon pas de problème je vais rajouter un petit __gc devant ma class (je suis tres recement sur le framework donc la je vien peut etre de dire une connerie ^^)
Et avec __gc il me dit quand je compile :
error C4980: '__gc' : use of this keyword requires /clr:oldSyntax command line option
et la j'avoue que je patauge alors si vous savez comment on peut declarer un membre managé dans une classe non managé ou bien comment on fait pour dire que ma classe est une classe managé ? :D
-
Bon après mainte recherche car personne ne repond ...
je vien de trouver le mot clé ref qui se place avant le mot clé class et qui indique que la classe est du type managée __gc et __value et autre mot clé du meme style n'existe plus dans cette version du framework :
car ce sont des mot clé du framework1.0 et moi je suis au 2.0
mais maintenant un autre probleme se pose :
on ne peut pas déclarer une classe friend dans une classe managée : alors comment faire pour que mes classes dérivé puissent acceder a mes attribut private ? sachant que je veu garder une encapsulation.
je veu pas coder a la "barbare"
-
Les classes dérivées peuvent accéder aux membre protected et non private.
Il suffit de déclarer les membres voulus protected dans la classe de base.
Rien à voir avec friend où il n'y a pas de notion de dérivation.
-
ouais on vien de me le dire désolé d'avoir mis un message si simple a resoudre mais j'aurai du mieux ecouter en cours quand j'etais encore a l'université :P maintenant c'est trop tard lol.
merci beaucoup NicolasG
See U later