-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy path15_structures.cpp
More file actions
53 lines (34 loc) · 1.79 KB
/
15_structures.cpp
File metadata and controls
53 lines (34 loc) · 1.79 KB
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
#include <iostream>
// Подключаем свой заголовочный файл (он находится в папке include).
#include "15_structures.hpp"
// Заголовочные файлы хранят в себе функции, структуры и т.д., которые можно использовать.
using namespace classwork; // чтобы постоянно не дописывать в названиях 'classwork::'
int main() {
{
// 1. Создание объекта структуры на стеке.
Student student; // вызывается конструктор по-умолчанию
// вызов метода через оператор . (точка)
student.SetId(1);
std::cout << "Id: " << student.id() << "\n";
}
std::cout << std::endl;
{
// 2. Создание объекта структуры на куче.
// выделяем участок памяти при помощи оператора new
auto* student_heap = new Student(1, 19);
// Пояснение: auto - ключевое слово, которое позволяет не писать тип данных слева от знака равно.
// вызов метода через оператор -> (стрелка)
student_heap->SetId(2);
// Пояснение: оператор -> используется для указателей.
std::cout << "Id: " << student_heap->id() << '\n';
delete student_heap; // высвобождаем участок памяти
}
return 0;
}
// "определение" конструктора от 2 аргументов из файла 15_structures.hpp
classwork::Student::Student(int id, int age) {
id_ = id;
age_ = age;
pointer_ = nullptr;
std::cout << "Student(id, age)\n";
}