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++ ?
Réponses
Trop de publicités?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.
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.