-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclass.h
More file actions
36 lines (26 loc) · 1.38 KB
/
class.h
File metadata and controls
36 lines (26 loc) · 1.38 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
#ifndef CLASS_H
#define CLASS_H
#include <string>
#include <vector>
#include "unit.h"
class Class : public Unit{
public:
enum AccessModifier // Здесь определены всевозможные спецификаторы доступа
{
PUBLIC, // C# C++ Java
PROTECTED, // C# C++ Java
PRIVATE, // C# C++ Java
INTERNAL, // C#
PROTECTED_INTERNAL, // C#
PRIVATE_PROTECTED, // C#
};
static const std::vector< std::string > ACCESS_MODIFIERS; // инициализирован вне класса
explicit Class(const std::string &name, size_t field_size) : m_name(name), m_fields(field_size) {}
protected:
std::string m_name; // имя класса
using Fields = std::vector<std::shared_ptr<Unit>>; // вектор член-функций/член-данных.
std::vector<Fields> m_fields; // вектор, характеризующий модификаторы достпа и член-функции/член-данные, которые соответствуют определенному
// модификатору доступа.
};
const std::vector< std::string > Class::ACCESS_MODIFIERS = { "public", "protected", "private", "internal", "protected internal", "private protected" };
#endif // CLASS_H