-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfungsi_member_static.cpp
More file actions
41 lines (34 loc) · 1.13 KB
/
fungsi_member_static.cpp
File metadata and controls
41 lines (34 loc) · 1.13 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
// 1. static member functio hanya terkait dengan kelas itu sendiri
// 2. fungsi ini tidak memliki akses ke anggota data non static
// 3. static member function hanya mengakses data atau fungsi anggota yang juga di deklarasikan dengan metode `static`
//
// 1. dapat dipanggil tanap membuat objek
// 2. tidak menggunakan pointer this
// 3. hanya akses anggota static
#include <iostream>
class HitungObjek {
private:
static int hitung_objek;
public:
HitungObjek() {
++hitung_objek;
}
~HitungObjek() {
--hitung_objek;
}
static int berikanHitungObjek() {
return hitung_objek;
}
};
int HitungObjek::hitung_objek = 0;
int main() {
std::cout << "jumlah objek saat ini: " << HitungObjek::berikanHitungObjek() << std::endl;
HitungObjek objek_pertama, objek_kedua;
std::cout << "jumlah objek stelah dibuat adalah: " << HitungObjek::berikanHitungObjek() << std::endl;
{
HitungObjek objek_ketiga;
std::cout << "jumlah objek setelah dibuat adalah: " << HitungObjek::berikanHitungObjek() << std::endl;
}
std::cout << "jumlah objek sekarang adalah: " << HitungObjek::berikanHitungObjek() << std::endl;
return 0;
}