C++
const
GOD03219
2018. 9. 17. 16:17
const field : 콜론 초기화를 해야한다.
const method : 메소드 내에서 필드의 값을 보호하는 목적
const object : 객체 안의 데이터 보호 목적
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 |
#include<iostream>
using namespace std;
class A {
const int a;
int b;
public:
A(int aa) :a(aa) , b (aa){ //콜론초기화: 생성자가 동작하기 전에 cosnt 필드 초기화 하기
//b = aa;
}
int getA()const {
return a;
}
int getB()const {
return b;
}
};
void main() {
A aa(90);
cout << aa.getA() << aa.getB()<< endl;
} |
cs |
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 |
#include<iostream>
using namespace std;
class A {
const int a;
int b;
public:
A(int aa) :a(aa) , b (aa){
//b = aa;
}
void setB(int bb){
b = bb;
}
int getA()const {
return a;
}
int getB()const {
return b;
}
};
void main() {
const A aa(90); // const object는 객체 생성할때만 데이터 넣음
//const object는 const 메소드만 부를 수 있다.
//aa.setB(89);
cout << aa.getB()<< endl;
} |
cs |
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 |
#include<iostream>
using namespace std;
class A {
int b;
public:
A(int aa) {
b = aa;
}
int getB()const {
return b;
}
int getB() {
return 100;
}
};
void main() {
A aa(90);
// 일반 object도 const메소드를 부를 수 있지만,
// 같은 이름의 getB()함수 중 일반 메소드를 부른다.
cout << aa.getB() << endl; // 100
} |
cs |