This shows you the differences between two versions of the page.
poo-is-ab:laboratoare:03 [2024/10/25 11:07] razvan.cristea0106 [Cuvântul cheie static] |
poo-is-ab:laboratoare:03 [2025/01/19 22:28] (current) razvan.cristea0106 |
||
---|---|---|---|
Line 568: | Line 568: | ||
</code> | </code> | ||
- | Deși membrul static **numarConifere** este privat noi ne propunem cumva să avem accest la el. Soluția este să implementăm un **getter** pentru acesta. | + | Deși membrul static **numarConifere** este privat noi totuși ne propunem să avem cumva acces la el. Soluția cea mai simplă este să implementăm un **getter** pentru acesta, astfel încât să respectăm și **principiul încapsulării datelor**. |
=== Funcții statice === | === Funcții statice === | ||
Line 574: | Line 574: | ||
La fel ca variabila statică, **funcția statică** există pe întreaga durată de viață a programului. În **POO** o **funcție statică** la nivel de clasă este foarte asemănătoare cu o **metodă**. Totuși o metodă primește ca parametru pe prima poziție în lista de parametri **pointerul this**. În C++ chiar dacă acest parametru **nu** este vizibil în lista de parametri, la compilare există (acest procedeu ne este ascuns, dar în spate compilatorul adaugă acest parametru la toate **funcțiile membre**). | La fel ca variabila statică, **funcția statică** există pe întreaga durată de viață a programului. În **POO** o **funcție statică** la nivel de clasă este foarte asemănătoare cu o **metodă**. Totuși o metodă primește ca parametru pe prima poziție în lista de parametri **pointerul this**. În C++ chiar dacă acest parametru **nu** este vizibil în lista de parametri, la compilare există (acest procedeu ne este ascuns, dar în spate compilatorul adaugă acest parametru la toate **funcțiile membre**). | ||
- | <note important>**O **funcție statică** la nivel de clasă **nu** primește **pointerul this** ca parametru. Îi spunem **funcție statică** și **nu** metodă statică din acest motiv.**</note> | + | <note important>**O funcție statică** la nivel de clasă **nu** primește **pointerul this** ca parametru. Îi spunem **funcție statică** și nu **metodă statică** din acest motiv.</note> |
În exemplul de mai jos am declarat un **getter** pentru a obține numărul de conifere. | În exemplul de mai jos am declarat un **getter** pentru a obține numărul de conifere. |