This shows you the differences between two versions of the page.
poo-is-ab:tema:00 [2024/12/05 15:01] marius.trifu [4. Clase și metode] |
poo-is-ab:tema:00 [2024/12/07 13:51] (current) razvan.cristea0106 [3. Formatare] |
||
---|---|---|---|
Line 4: | Line 4: | ||
===== 1. Structura generală a fișierelor ===== | ===== 1. Structura generală a fișierelor ===== | ||
+ | |||
- Fiecare clasă trebuie definită într-un fișier separat: | - Fiecare clasă trebuie definită într-un fișier separat: | ||
* Declarațiile clasei în fișierul de header (.h). | * Declarațiile clasei în fișierul de header (.h). | ||
Line 13: | Line 14: | ||
- Exemple de structură: | - Exemple de structură: | ||
- | <code> | ||
// Exemplu include-uri | // Exemplu include-uri | ||
#include "MyClass.h" | #include "MyClass.h" | ||
Line 19: | Line 19: | ||
#include <iostream> | #include <iostream> | ||
#include <vector> | #include <vector> | ||
- | </code> | + | |
===== 2. Denumiri ===== | ===== 2. Denumiri ===== | ||
- **Clase**: PascalCase (ex. ''MyClass''). | - **Clase**: PascalCase (ex. ''MyClass''). | ||
Line 28: | Line 27: | ||
- **Spații de nume (namespace)**: lowercase (ex. ''namespace utils''). | - **Spații de nume (namespace)**: lowercase (ex. ''namespace utils''). | ||
- **Enumerări**: PascalCase pentru tipuri, toate literele mari pentru valori. | - **Enumerări**: PascalCase pentru tipuri, toate literele mari pentru valori. | ||
- | <code> | + | <code cpp> |
enum class Color { | enum class Color { | ||
RED, | RED, | ||
GREEN, | GREEN, | ||
BLUE | BLUE | ||
- | }; | + | };</code> |
- | </code> | + | |
===== 3. Formatare ===== | ===== 3. Formatare ===== | ||
Line 40: | Line 38: | ||
* **Acolade**: Stil Allman (acoladele deschise pe linie separată). | * **Acolade**: Stil Allman (acoladele deschise pe linie separată). | ||
+ | <code cpp> | ||
class MyClass | class MyClass | ||
{ | { | ||
Line 48: | Line 47: | ||
} | } | ||
}; | }; | ||
+ | </code> | ||
* **Lungimea liniei**: maxim 80 de caractere. | * **Lungimea liniei**: maxim 80 de caractere. | ||
Line 57: | Line 57: | ||
* **Reguli generale**: | * **Reguli generale**: | ||
* Inițializați toate variabilele în constructor folosind lista de inițializare. | * Inițializați toate variabilele în constructor folosind lista de inițializare. | ||
- | <code> | + | <code cpp> |
MyClass::MyClass(int value) | MyClass::MyClass(int value) | ||
: m_value(value) | : m_value(value) | ||
{ | { | ||
- | } | + | }</code> |
- | </code> | + | |
* **Getter și Setter**: | * **Getter și Setter**: | ||
- | * Getterele trebuie să fie constante (ex. ''int getValue() const;''). | + | |
+ | * Getterii trebuie să fie constanți (ex. ''int getValue() const;''). | ||
* Metodele care nu modifică obiectul trebuie să fie declarate const. | * Metodele care nu modifică obiectul trebuie să fie declarate const. | ||
- | <code> | + | |
+ | <code cpp> | ||
class MyClass | class MyClass | ||
{ | { | ||
Line 74: | Line 75: | ||
public: | public: | ||
int getValue() const { return m_value; } | int getValue() const { return m_value; } | ||
- | void setValue(int value) { m_value = value; } | + | void setValue(const int& value) { m_value = value; } |
}; | }; | ||
- | </code> | + | </code> |
- | + | ||
- | + | ||
===== 5. Alte recomandări ===== | ===== 5. Alte recomandări ===== | ||
Line 87: | Line 85: | ||
===== Exemplu complet ===== | ===== Exemplu complet ===== | ||
- | <code> | ||
+ | <code cpp> | ||
#include <iostream> | #include <iostream> | ||
Line 115: | Line 113: | ||
return 0; | return 0; | ||
} | } | ||
- | |||
</code> | </code> | ||