Xistenials TUTS Classi e oggetti Lezione 1

Xistenials TUTS Classi e oggetti Lezione 1

Classi e oggetti


Immagina una cucina... Ora in questa cucina avrai vari elettrodomestici (fornello, frigorifero, microonde, bollitore ecc.). Questi elettrodomestici sono ciò che rende una cucina, una cucina, senza di loro sarebbe solo un'altra stanza. C++ funziona più o meno allo stesso modo. La cucina è la tua classe e tutti gli altri elettrodomestici sono i tuoi membri della classe.

La sintassi generale per definire una classe è:

1
2
3
4
class classIdentifier
{
classMembersList
};


**Un punto e virgola mancante comporterà un errore di sintassi!

I membri di una classe sono classificati in 3 categorie:privati ,pubblico ,protetto e il nome di fantasia per questi 3 sono specificatori di accesso dei membri .

Alcuni fatti su privato &pubblico membri di una classe:
(*)-- Per impostazione predefinita, tutti i membri sono dichiarati privati.
(*)-- Se un membro è privato , non puoi accedervi al di fuori della classe (l'esempio 1 lo illustrerà)
(*)-- Un pubblico il membro è accessibile al di fuori di una classe (l'esempio 1 lo illustrerà)

Come sapere quando scegliere pubblico e privato?


Supponiamo di voler definire una classe per implementare l'ora del giorno in un programma. Chiamiamo questa classe clockType . Inoltre utilizziamo 3 variabili come segue:

1
2
3
int hr;
int min;
int sec;


Desideriamo svolgere anche queste funzioni:
1. impostare l'ora
2. recuperare il tempo
3. tempo di stampa //beh, dobbiamo leggerlo sì?
4. incrementare il tempo di 1 sec
5. aumentare il tempo di 1 min
6.incrementare il tempo di 1 ora
7. Confronta due volte per l'uguaglianza

Dall'alto possiamo vedere class clockType ha 10 variabili membro.

Ok, sei arrivato fin qui, ma adesso? In che modo questo aiuta con il dilemma privato e pubblico? Decidere quali membri rendere pubblici o privati ​​dipende dalla natura del membro. La regola pratica è
*Se è necessario accedere a un membro al di fuori di una classe, dichiararlo pubblico.
*Qualsiasi membro a cui non dovrebbe accedere direttamente l'utente deve essere dichiarato privato.
Ad esempio, l'utente dovrebbe essere in grado di impostare l'ora e stampare l'ora, quindi dovrebbero essere pubblici. Anche i membri per aumentare il tempo e confrontare il tempo dovrebbero essere dichiarati pubblici. Per impedire la manipolazione diretta delle variabili membro hr,min,sec, li renderemo privati.
**Tieni presente che se l'utente ha accesso diretto a questi, perché dovremmo aver bisogno della funzione setTime?

Il tuo codice ora dovrebbe assomigliare a questo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class clockType
{
public:
void setTime(int,int,int);
void getTime(int&,int&,int&) const;
void printTime() const;
void IncrementSeconds();
void IncrementMinutes();
void IncrementHours();
bool equalTime(const clockType&) const;

private:
int hr;
int min;
int sec;
};
 


(*)--La parola const specifica che queste funzioni non possono modificare le variabili membro di una variabile di tipo classe clockType.


Dichiarazione dell'oggetto


Fino ad ora abbiamo usato la variabile di classe di parole, in che cosa si trova, termini tecnici c++, è un oggetto .

sintassi per la dichiarazione di un oggetto di classe

tipo orologio mio orologio; //Dichiarazione di un oggetto, myClock

Accesso ai membri della classe


sintassi per un oggetto per accedere a un membro di una classe è

classObjectName.memberName // il .(punto) è noto come operatore punto

Ok, tutte queste parole sono praticamente noiose, lo so, vuoi che il codice non venga letto attraverso un saggio (ecco perché scegli c++ non latino) ma è importante stare al passo con il gergo usato perché è lì che la maggior parte delle persone colpisce il muro. Ok, quindi basta parlare per ora consente di visualizzare un po' di codice.


Esempio 1 (segmento di codice)


Questo pezzo di codice seguente ti mostrerà come funziona l'accesso..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//Declaring our objects
clockType myClock; 
clockType yourClock; 

//Accessing

myClock.setTime(5,2,30)// values 5,2,30 passed as parameters to function setTime
myClock.printTime();
yourClock.setTime(x,y,z); //x,y,z are variables of type int.

if(myClock.equalTime(yourClock))
.
.
//Some code in here
.
.

//Illegal Statements
myClock.hr =10;
myClock.min = yourClock.min; 
/*Illegal because hr and min are private variables and cannot be accessed by the objects*/
 


Questo è tutto per questo tutorial, lascia che tutta quella roba affondi. Successivamente affrontiamo l'implementazione delle funzioni membro e un esempio completo del codice sorgente dell'orologio con una spiegazione per ogni passaggio che ho eseguito.