structure Vs classe

structure Vs classe - C++ - Programmation

Marsh Posté le 30-01-2011 à 23:27:47    

Bonjours,  
j'aimerais savoir quand est ce qu'on doit utiliser une structure au lieu d'une classe, et vice versa .
Je pensais qu'une structure ne contient pas de fonction/méthode ...
Merci d'avance pour votre aide.

Reply

Marsh Posté le 30-01-2011 à 23:27:47   

Reply

Marsh Posté le 31-01-2011 à 06:40:20    

Si je dis pas de conneries, les membres d'une structure sont par défaut public alors que ceux d'une classe sont privés.
 
Sinon je crois qu'il n'y a pas de différences fondamentales


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 31-01-2011 à 09:44:57    

WiiDS a écrit :

Si je dis pas de conneries, les membres d'une structure sont par défaut public alors que ceux d'une classe sont privés.
 
Sinon je crois qu'il n'y a pas de différences fondamentales


 
Exact (de meme pour l'heritage; et pour les parametres template, c'est class ou typename).
 
Le choix entre struct et class est donc plus une question de style qu'autre chose.  Je connais au moins trois styles:
- struct pour ce qui est compatible avec le C,
- struct pour ce qui n'a que des membres publics (mais admet des constructeurs et des fonctions membres, eventuellement virtuelles)
- struct pour ce qui a une semantique de valeur.
 


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 31-01-2011 à 10:00:16    

donc on peut bien faire template <class T> au lieu de template <typename T> ...?

Reply

Marsh Posté le 31-01-2011 à 10:22:41    

Oui, mais pas template <struct T>


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 31-01-2011 à 15:12:43    

Exact: la seule différence technique, c'est la visibilité par défaut des membres et de l'héritage. Sinon c'est une histoire de sémantique/convention.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed