2010-02-19 11 views

risposta

6
  1. Un * davanti al tipo di dati indica che la variabile è un puntatore al tipo di dati, in questo caso, un puntatore a un nodo. Invece di passare una copia dell'intero "nodo" nel metodo, viene invece passato un indirizzo di memoria o un puntatore. Per dettagli, vedere Pointers in this C++ Tutorial.

  2. Il nome classe davanti al nome del metodo specifica che questo sta definendo un metodo della classe CAStar. Per dettagli, vedere lo Tutorial pages for Classes.

+2

Inoltre, è possibile considerarlo come un modo per chiarire i nomi delle funzioni. Ad esempio, supponiamo di avere due classi (esempio banale); uno implementa le frazioni (Frazione) e l'altro implementa gli interi (Intero). Entrambe le classi possono avere una funzione chiamata "aggiungi". Includendo il nome della classe Fraction, il compilatore saprà che stai implementando la funzione add per la classe Fraction, piuttosto che la classe Integer. –

+0

Ben detto, Ryan –

3

Il * significa che si tratta di un pointer. Scoprirai anche che _asNode *node equivale a _asNode* node.

Il nome classe si trova davanti al nome del metodo quando il metodo non è definito all'interno di class { ... }. Il :: è il scope operator.

2

Sei nuovo alla programmazione in generale o solo al C++? Se sei nuovo alla programmazione, probabilmente vorrai prendere lezioni. Se sei appena arrivato al C++, puoi provare a leggere Practical C++ Programming on-line C++ Primer.

quanto riguarda la tua domanda specifica: nella dichiarazione delle variabili, un asterisco significa "questo è un puntatore":

 
int * pointer; 

Questo riguarda anche le dichiarazioni di funzione/prototipi, in cui sono dichiarate le variabili, come nel tuo esempio.

Dopo la dichiarazione, asterisco significa che stai de-referenziare il puntatore. Cioè, stai ottenendo il valore nel punto in cui sta puntando.

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

Si noterà che l'indirizzo di memoria cambierà in modo imprevisto, a seconda dello stato del programma quando viene stampato. In un programma semplice, non vedrai il cambiamento, ma in un programma complesso, lo faresti.

+0

Sono nuovo del C++. Ho lavorato principalmente su php, as3 e C#. ma mai in C++. Ma ascoltando queste risposte sto vedendo che C++ è lil differente. Come dichiarare metodi al di fuori di una classe. Ma grazie per le informazioni. – numerical25

Problemi correlati