-
Notifications
You must be signed in to change notification settings - Fork 2k
Expand file tree
/
Copy pathtest3.cpp
More file actions
132 lines (105 loc) · 2.03 KB
/
test3.cpp
File metadata and controls
132 lines (105 loc) · 2.03 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
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
class MyClass1
{
// public / static data members
public:
int public_val;
char public_arr[100];
static int public_static_val;
protected:
static int protected_static_val;
private:
static int private_static_val;
};
class MyClass2
{
protected:
int protected_val; // has protected non-static variable -> not aggregate / POD
};
class MyClass3
{
private:
char private_arr[100]; // has private non-static variable -> not aggregate / POD
};
struct MyClass4
{
int public_val; // (public by default)
};
class MyClass5
{
int private_val; // (private by default) has private non-static variable -> not aggregate / POD
};
// ---
class MyClass10
{
// non-virtual functions
public:
void public_fun();
protected:
void protected_fun();
private:
void private_fun();
};
class MyClass11
{
public:
virtual void fun(); // has virtual function -> not aggregate / POD
};
class MyClass12
{
public:
virtual ~MyClass12(); // has virtual function -> not aggregate / POD
};
// ---
class MyClass20
{
public:
MyClass20 &operator=(const MyClass20 &); // // copy-assignment -> not POD
};
class MyClass21
{
public:
~MyClass21(); // destructor -> not POD
};
class MyClass22
{
public:
MyClass22(); // has user-declared constructor -> not aggregate / POD
};
class MyClass23
{
public:
MyClass23(int fromInt); // has user-declared constructor -> not aggregate / POD
};
class MyClass24
{
private:
MyClass24(const MyClass24 &); // has user-declared copy-constructor -> not aggregate / POD
};
// ---
class MyClass30 : public MyClass1 // has a base class -> not aggregate / POD
{
};
class MyClass31
{
public:
static MyClass30 public_static_mc30;
protected:
static MyClass30 protected_static_mc30;
private:
static MyClass30 private_static_mc30;
};
class MyClass32
{
public:
MyClass30 public_mc30; // has non-static, non-POD variable -> not POD
};
class MyClass33
{
protected:
MyClass30 &public_mc30; // has non-static, non-POD variable reference -> not POD
};
class MyClass34
{
protected:
MyClass30 public_mc30[10]; // has array of non-static, non-POD type -> not POD
};