-
Notifications
You must be signed in to change notification settings - Fork 26
/
Copy path15_structures.hpp
55 lines (41 loc) · 1.34 KB
/
15_structures.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#pragma once
#include <iostream>
namespace classwork {
struct Student {
public:
// конструктор по-умолчанию (без аргументов)
Student() {
id_ = 0;
age_ = 0;
// выделили память в куче (не забыть высвободить)
pointer_ = new int{0};
std::cout << "Student()\n";
}
// "объявление" конструктора от 2 аргументов
Student(int id, int age);
// деструктор
~Student() {
delete pointer_;
pointer_ = nullptr;
std::cout << "~Student()\n";
}
// getter - метод, который возвращает копию значения поля id
int id() const {
return id_;
}
// setter - метод, который изменяет значение поля id
void SetId(int new_id) {
private_function(); // вызов приватной функции возможен внутри структуры
id_ = new_id;
}
private:
// приватные переменные принято называть с суффиксом _
int id_;
int age_;
int* pointer_;
// приватные методы
void private_function() {
std::cout << "Student::private_function()\n";
}
};
} // namespace classwork