/
All_In_One.cpp
76 lines (61 loc) · 845 Bytes
/
All_In_One.cpp
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
#include<iostream>
using namespace std;
class A; // not required
class B;
class A{
string name;
B* b;
public:
A();
void set(B* pB);
string get();
void print();
};
class B{
string name;
A* a;
public:
B();
void set(A* pA);
string get();
void print();
};
A::A(){
name = "Class A";
}
void A::set(B* pB){
b = pB;
}
void A::print(){
cout << name.c_str() << endl;
cout << b->get().c_str() << endl;
}
string A::get(){
return name;
}
B::B(){
name = "Class B";
a = new A();
}
void B::set(A* pA){
a = pA;
}
void B::print(){
cout << name.c_str() << endl;
cout << a->get().c_str() << endl;
}
string B::get(){
return name;
}
int main()
{
A* pA = new A();
B* pB = new B();
pA->set(pB);
pB->set(pA);
cout << "Calling A's print " << endl;
pA->print();
cout << "Calling B's print " << endl;
pB->print();
return 0;
}