2 votes

Quand l'utilisation d'une structure est-elle plus raisonnable que celle d'une classe en C++ ?

J'ai lu le code source de Qt Creator. Quand est-ce que l'utilisation d'un struct plus appropriée que l'utilisation d'un class en C++ ?

4voto

juanchopanza Points 115680

C'est purement une question de préférence personnelle ou de conventions de codage. struct et class sont essentiellement les mêmes en C++, la différence étant que les spécificateurs d'accès par défaut et les classes de base sont les suivants public pour un struct et private pour un class .

Par exemple, voici deux définitions de Bar sont équivalentes :

class Foo {};
struct Bar : Foo {};
class Bar : public Foo {};

Ici aussi :

class Foo {};
struct Bar : private Foo {};
class Bar : Foo {};

et ici aussi :

class Bar
{
  int n;     // private
 public:
  double x;  // public
}; 

struct Bar
{
 private:
  int n;
 public:
  double x;
}; 

En outre, vous pourriez déclarer à l'avance Bar comme class Bar o struct Bar de manière interchangeable.

1voto

bstamour Points 3925

Il n'y a pas de différence à part l'accès par défaut (struct => public, class => private). Pour des raisons de lisibilité, je préfère utiliser struct lorsque je définis un simple struct C (juste des données), ou lorsque la majorité de mes membres/méthodes sont publics.

1voto

perreal Points 47912

Je pense à struct comme un record. Ils regroupent des variables et vous voulez accéder et modifier les membres de la structure sans indirection, comme un appel de fonction. Par exemple, lorsque vous voulez écrire ensemble des groupes d'éléments de données pour les transférer dans un fichier ou les envoyer sur le réseau, l'utilisation de la classe peut même rendre le code plus difficile à lire et à comprendre.

0voto

icktoofay Points 60218

Il peut être plus approprié lorsqu'il s'agit de simples données sans aucune fonctionnalité. En C++, la seule différence entre class et struct c'est que struct les membres sont public par défaut, par opposition à private para class .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X