-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpointer_class.cpp
More file actions
86 lines (66 loc) · 2.22 KB
/
pointer_class.cpp
File metadata and controls
86 lines (66 loc) · 2.22 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
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
#include <iostream>
#include <string>
class Pegawai {
private:
std::string nama_pegawai;
int id_pegawai;
double gaji_pegawai;
public:
Pegawai() {
nama_pegawai = "tidak ada";
id_pegawai = 0;
gaji_pegawai = 0.0;
std::cout << "default dari data pegawai sudah terbuat" << std::endl;
}
Pegawai(std::string nama, int id, double gaji) {
nama_pegawai = nama;
id_pegawai = id;
gaji_pegawai = gaji;
std::cout << "pegawai dengan nama: " << nama_pegawai << " sudah terbuat" << std::endl;
}
void atur_gaji(double gaji) {
gaji_pegawai = gaji;
}
double dapatkan_gaji() const {
return gaji_pegawai;
}
void tampilkan_ingpo() const {
std::cout << "nama: " << nama_pegawai << std::endl;
std::cout << "id: " << id_pegawai << std::endl;
std::cout << "gaji: Rp." << gaji_pegawai << std::endl;
}
double hitung_tunjangan() const {
return gaji_pegawai * 0.1;
}
};
void proses_pegawai_dengan_pointer(Pegawai* pointer_pegawai) {
std::cout << "proses pegawai melalui dari pointer" << std::endl;
if (pointer_pegawai != nullptr) {
pointer_pegawai->tampilkan_ingpo();
std::cout << "tunjangan gaji: Rp." << pointer_pegawai->hitung_tunjangan() << std::endl;
} else {
std::cout << "tidak ada data pegawai untuk kita proses" << std::endl;
}
}
Pegawai* buat_pegawai_baru(std::string nama, int id, double gaji) {
Pegawai* pointer_pegawai = new Pegawai(nama, id, gaji);
return pointer_pegawai;
}
int main() {
// Pegawai pegawai_pertama("arfy", 101, 52'000);
//
// Pegawai* pointer_pegawai = &pegawai_pertama;
//
// std::cout << "alamat objek dari si pegawai pertama: " << &pegawai_pertama << std::endl;
// pointer_pegawai->tampilkan_ingpo();
// (*pointer_pegawai).tampilkan_ingpo();
Pegawai* pointer_pegawai_kedua = new Pegawai("arep", 102, 20'000);
std::cout << "alamat objek dynamic: " << pointer_pegawai_kedua << std::endl;
// pointer_pegawai_kedua->tampilkan_ingpo();
pointer_pegawai_kedua->atur_gaji(45'000.0);
// pointer_pegawai_kedua->tampilkan_ingpo();
std::cout << "gaji tunjangan sekarang adalah: " << pointer_pegawai_kedua->hitung_tunjangan() << std::endl;
delete pointer_pegawai_kedua;
pointer_pegawai_kedua = nullptr;
return 0;
}