This shows you the differences between two versions of the page.
|
poo-is-ab:tema:00 [2024/12/05 15:06] marius.trifu [1. Structura generală a fișierelor] |
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 21: | Line 20: | ||
| #include <vector> | #include <vector> | ||
| | | ||
| - | </code> | ||
| - | |||
| ===== 2. Denumiri ===== | ===== 2. Denumiri ===== | ||
| - **Clase**: PascalCase (ex. ''MyClass''). | - **Clase**: PascalCase (ex. ''MyClass''). | ||
| Line 30: | 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 42: | 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 50: | Line 47: | ||
| } | } | ||
| }; | }; | ||
| + | </code> | ||
| * **Lungimea liniei**: maxim 80 de caractere. | * **Lungimea liniei**: maxim 80 de caractere. | ||
| Line 59: | 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 76: | 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 89: | Line 85: | ||
| ===== Exemplu complet ===== | ===== Exemplu complet ===== | ||
| - | <code> | ||
| + | <code cpp> | ||
| #include <iostream> | #include <iostream> | ||
| Line 117: | Line 113: | ||
| return 0; | return 0; | ||
| } | } | ||
| - | |||
| </code> | </code> | ||