-
Notifications
You must be signed in to change notification settings - Fork 0
/
pointers.cpp
47 lines (40 loc) · 922 Bytes
/
pointers.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
#include <string>
#include <iostream>
#include <memory>
using namespace std;
class Bla
{
private:
string x;
public:
Bla(){}
Bla(string y): x(y){}
~Bla(){}
string get(){return x;}
void set(string y){x=y;}
};
class PBla
{
private:
Bla *bla_ptr;
public:
Bla get(){return *bla_ptr;}
void set(Bla bla){*bla_ptr=bla;}
PBla();
PBla(Bla bla):bla_ptr(&bla){}
~PBla();
};
int main()
{
Bla *some_object1 = new Bla("11111");
Bla some_object("12345");
unique_ptr<Bla> bla_ptr(new Bla("22222"));
unique_ptr<Bla> bla_ptr1(new Bla("33333"));
unique_ptr<Bla> bla_ptr2 = make_unique<Bla>(*some_object1);
cout <<some_object.get()<<"\n";
cout <<&some_object<<"\n";
cout<<bla_ptr.get()<<"\n";
cout<<bla_ptr1.get()<<"\n";
cout<<bla_ptr->get()<<"\n";
cout<<bla_ptr1->get()<<"\n";
}