xcal
基于 C++23 的现代图形渲染引擎
载入中...
搜索中...
未找到
examples
destruct.cc
浏览该文件的文档.
1
2
class
Mobject
{
3
public
:
4
virtual
~Mobject
() {}
5
};
6
7
template
<
typename
T>
8
class
PosMObject
{
9
private
:
10
size_t
pos_;
11
12
public
:
13
T *
set_pos
(
size_t
pos) {
14
pos_ = pos;
15
return
static_cast<
T *
>
(
this
);
16
}
17
18
public
:
19
};
20
template
<
typename
T>
21
class
SizeMObject
{
22
private
:
23
size_t
size_;
24
25
public
:
26
T *
set_size
(
size_t
size) {
27
size_ = size;
28
return
static_cast<
T *
>
(
this
);
29
}
30
31
public
:
32
~SizeMObject
() {}
33
};
34
35
template
<
class
_Derived,
template
<
class
>
class
... Args>
36
class
ComposedMobject
:
public
Mobject
,
public
Args<_Derived>... {
37
public
:
38
virtual
~ComposedMobject
() {}
39
};
40
41
class
MyObject
:
public
ComposedMobject
<MyObject, PosMObject, SizeMObject> {
42
public
:
43
};
44
45
int
main
() {
46
auto
myobject =
new
MyObject
{};
47
48
myobject->set_pos(11)->set_pos(11)->set_size(11)->set_size(11);
49
50
Mobject
*m = myobject;
51
52
delete
m;
53
return
0;
54
}
ComposedMobject
Definition
destruct.cc:36
ComposedMobject::~ComposedMobject
virtual ~ComposedMobject()
Definition
destruct.cc:38
Mobject
Definition
destruct.cc:2
Mobject::~Mobject
virtual ~Mobject()
Definition
destruct.cc:4
MyObject
Definition
destruct.cc:41
PosMObject
Definition
destruct.cc:8
PosMObject::set_pos
T * set_pos(size_t pos)
Definition
destruct.cc:13
SizeMObject
Definition
destruct.cc:21
SizeMObject::~SizeMObject
~SizeMObject()
Definition
destruct.cc:32
SizeMObject::set_size
T * set_size(size_t size)
Definition
destruct.cc:26
main
int main()
Definition
destruct.cc:45
生成于 2025年 九月 19日 星期五 21:12:12 , 为 xcal使用
1.9.8