Repository navigation
Expand file tree
/
Copy pathMainComposite.cpp
More file actions
56 lines (40 loc) · 1.65 KB
/
Copy pathMainComposite.cpp
File metadata and controls
56 lines (40 loc) · 1.65 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
/**
Project : Composite Pattern Example
Authors : Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides
Implementer : Gabriel Nicolás González Ferreira
**/
///////////////////////////////////////////ICOMPONENT-INTERFACE///////////////////////////////////////////////
#ifndef IComposableH
#include "IComposable.h"
#endif
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////COMPOSITE///////////////////////////////////////////////////////
#ifndef FolderH
#include "Folder.h"
#endif
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////LEAF////////////////////////////////////////////////////////
#ifndef FileH
#include "file.h"
#endif
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <vector>
#include <algorithm>
/////////////////////////////////////////////////MAIN////////////////////////////////////////////////////////
int main()
{
IComposable* folder_01 = new Folder("folder_01");
IComposable* folder_02 = new Folder("folder_02");
folder_01->add(folder_02);
IComposable* folder_03 = new Folder("folder_03");
folder_03->add(new File("file A"));
folder_03->add(new File("file B"));
folder_02->add(folder_03);
folder_01->list(1);
delete folder_03;
delete folder_02;
delete folder_01;
return 0;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////