blob: f585dabe78fb6a33c608421d4dd2f5441c0d2ca9 (
plain)
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
|
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.cpp :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 20:47:34 by charles #+# #+# */
/* Updated: 2020/12/11 10:29:53 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <iostream>
#include "Sorcerer.hpp"
#include "Victim.hpp"
#include "Peon.hpp"
int main()
{
{
std::cout << "==================== SUBJECT MAIN =====================" << std::endl;
Sorcerer robert("Robert", "the Magnificent");
Victim jim("Jimmy");
Peon joe("Joe");
std::cout << robert << jim << joe;
robert.polymorph(jim);
robert.polymorph(joe);
}
std::cout << std::endl;
{
std::cout << "==================== SORCERER =====================" << std::endl;
Sorcerer s("DidierLeSorcier", "The cunt");
Sorcerer s_copied(s);
Sorcerer s_assigned("foo", "yep clock");
s_assigned = s;
Sorcerer *s_ptr = new Sorcerer("Foo", "Bar");
std::cout << *s_ptr;
s_ptr->polymorph(Peon("Yep"));
delete s_ptr;
std::cout << "Copied: " << s_copied;
std::cout << "Assigned: " << s_assigned;
}
std::cout << std::endl;
{
std::cout << "==================== VICTIM =====================" << std::endl;
Victim v("Victoire");
Victim v_copied(v);
Victim v_assigned("bar");
v_assigned = v;
Victim *v_ptr = new Victim("Foo");
std::cout << *v_ptr;
v_ptr->getPolymorphed();
delete v_ptr;
std::cout << "Copied: " << v_copied;
std::cout << "Assigned: " << v_assigned;
v.getPolymorphed();
}
std::cout << std::endl;
{
std::cout << "==================== PEON =====================" << std::endl;
Peon p("Pionnier");
Peon p_copied(p);
Peon p_assigned("baz");
p_assigned = p;
Peon *p_ptr = new Peon("Foo");
std::cout << *p_ptr;
p_ptr->getPolymorphed();
delete p_ptr;
std::cout << "Copied: " << p_copied;
std::cout << "Assigned: " << p_assigned;
p.getPolymorphed();
}
std::cout << std::endl;
{
std::cout << "==================== RAT =====================" << std::endl;
Rat r("Ratteur");
std::cout << r;
Rat r_copied(r);
Rat r_assigned("baz");
r_assigned = r;
Rat *r_ptr = new Rat("Foo");
std::cout << *r_ptr;
r_ptr->getPolymorphed();
delete r_ptr;
std::cout << "Copied: " << r_copied;
std::cout << "Assigned: " << r_assigned;
r.getPolymorphed();
Sorcerer s("Sorcier", "Yes man");
s.polymorph(r);
}
return 0;
}
|