2010-10-31 8 views
0

Vu le code suivant:C++ - Question sur typedef

typedef struct IntElement 
{ 
    struct IntElement *next; // use struct IntElement 
    int   data; 
} IntElement; 

typedef struct IntElement 
{ 
    IntElement *next; // Use IntElement 
    int   data; 
} IntElement; // why I can re-use IntElement here? 

J'utilise la structure ci-dessus de données pour définir un nœud de liste chaînée.

  1. Quel est le meilleur?
  2. Pourquoi utiliser le nom dupliqué (c'est-à-dire struct IntElement et IntElement à la fin du typedef)?

Répondre

8

Aucune des deux n'est C++. La première déclaration est l'ancienne syntaxe C. La seconde est quelqu'un qui a réalisé que vous n'avez pas besoin de cela en C++ et l'a ensuite oublié une ligne plus tard. C++ il fait comme ceci:

struct IntElement { 
    IntElement* next; 
    int data; 
}; 
2

@ Q1: Ni dans C++. Il suffit d'utiliser

struct IntElement { 
    IntElement *next; 
    int data; 
}; 

struct IntElement est automatiquement typedef « d à IntElement