-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy path11.BasicClass.cpp
More file actions
46 lines (38 loc) · 1.62 KB
/
11.BasicClass.cpp
File metadata and controls
46 lines (38 loc) · 1.62 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
#include <iostream>
using namespace std;
// Membuat class baru dengan nama Foo
class Foo {
/**
* Visibility modifier.
* public -> Fungsi dan atau field bisa diakses dari luar kelas
* private -> Fungsi dan atau field hanya bisa diakses hanya untuk kelas itu sendiri
*/
public:
// Membuat default constructor dengan tanpa parameter
// Constructor akan dipanggil terlebih dahulu saat object class diinisiasikan
Foo() {
cout << "Ini adalah constructor, dipanggil saat diinisasi" << endl;
}
// Sebuah fungsi yang terdapat pada suatu kelas.
// Biasanya melakukan hal hal yang spesifik
// Dan dipanggil secara manual (oleh programmer).
void doAction() {
cout << "Do Action: Fungsi do action dipanggil!" << endl;
}
// Ini adalah Destructor
// Dipanggil sebelum sebuah instance dari suatu class di delete dari memory.
// Ini berguna ketika kita mengalokasikan memori secara dinamis maupun mengakses sebuah stream
// Dimana harus untuk direlease agar tidak terjadi memory leaks
~Foo() {
cout << "Ini adalah destructor, dipanggil sebelum object class di delete" << endl;
}
};
// Entry point function dari Cpp, dipanggil pertama kali.
int main() {
// Inisiasi sebuah object class
Foo foo;
// Memanggil sebuah fungsi dari instance class Foo (doAction())
foo.doAction();
// Eksekusi kode pada function ini berakhir. Seluru resources yang ada di fungsi ini di release / di hapus dari memory
// Termasuk instance foo, destructor dari class Foo dipanggil.
}