-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPoly6.h
87 lines (70 loc) · 1.07 KB
/
Poly6.h
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#pragma once
class VirtualDestructorDemo
{
class Transport
{
protected:
double speed;
public:
Transport()
{
cout << "Transport::CTOR\n";
}
~Transport()
{
cout << "Transport::DEST\n";
}
};
class Truck : public Transport // ãðóçîâèê
{
char* load; // ãðóç
public:
Truck()
{
cout << "Truck::CTOR\n";
load = new char[100000]; // êàæäûé ãðóçîâèê âûäåëÿåò ïîä ñåáÿ 100.000 áàéò
}
~Truck()
{
cout << "Truck::DEST\n";
delete[] load;
}
};
class Minibus : public Transport // ìàðøðóòêà
{
int* passengers;
public:
Minibus()
{
cout << "Minibus::CTOR\n";
passengers = new int[rand() % 40];
}
~Minibus()
{
cout << "Minibus::DEST\n";
delete[] passengers;
}
};
public:
static void Test()
{
Truck t;
_getch();
cout << "\n";
Minibus m;
_getch();
cout << "\n";
Transport* ar[2];
ar[0] = new Truck;
_getch();
cout << "\n";
ar[1] = new Minibus;
_getch();
cout << "\n";
for (int i = 0; i < 2; i++)
delete ar[i];
_getch();
cout << "\n";
}
};
// VirtualDestructorDemo::Test();