2010-02-19 6 views

Répondre

6
  1. A * en face du dit type de données que la variable est un pointeur sur le type de données, dans ce cas, un pointeur vers un noeud. Au lieu de passer une copie de l'ensemble du "nœud" dans la méthode, une adresse mémoire, ou pointeur, est passée à la place. Pour plus de détails, voir Pointers in this C++ Tutorial.

  2. Le nom de la classe devant le nom de la méthode indique qu'il s'agit de définir une méthode de la classe CAStar. Pour plus de détails, voir le Tutorial pages for Classes.

+2

En outre, vous pouvez considérer cela comme un moyen de désamorcer les noms de fonctions. Par exemple, disons que vous avez deux classes (exemple trivial); l'un implémente des fractions (Fraction) et l'autre implémente des entiers (Integer). Les deux classes peuvent avoir une fonction appelée "ajouter". En incluant le nom de la classe Fraction, le compilateur saura que vous implémentez la fonction add pour la classe Fraction plutôt que la classe Integer. –

+0

Bien dit, Ryan –

3

Le * signifie qu'il est un pointer. Vous trouverez également que _asNode *node est équivalent à _asNode* node.

Le nom de la classe est devant le nom de la méthode lorsque la méthode n'est pas définie à l'intérieur du class { ... }. Le :: est le scope operator.

2

Êtes-vous nouveau à la programmation en général, ou simplement au C++? Si vous êtes novice en programmation, vous voulez probablement prendre des cours. Si vous êtes nouveau en C++, vous pouvez essayer de lire Practical C++ Programming en ligne C++ Primer.

En ce qui concerne votre question: dans la déclaration variable, un astérisque signifie « ceci est un pointeur »:

 
int * pointer; 

Cette garantie couvre également les déclarations de fonctions/prototypes, où les variables sont déclarées, comme dans votre exemple. Après la déclaration, l'astérisque signifie que vous décrivez le pointeur. Autrement dit, vous obtenez la valeur à l'emplacement vers lequel il pointe.

 
printf("memory address:%d value:%d", pointer, *pointer); 

Vous remarquerez que l'adresse mémoire change de façon inattendue, en fonction de l'état du programme lors de l'impression. Dans un programme simple, vous ne verrez pas le changement, mais dans un programme complexe, vous le feriez.

+0

Je suis nouveau en C++. J'ai travaillé principalement sur php, as3 et C#. mais jamais en C++. Mais en entendant ces réponses, je vois que C++ est tout à fait différent. Comme déclarer des méthodes en dehors d'une classe. Mais merci pour l'info. – numerical25

Questions connexes