A sentimental robot

const 본문

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

'C++ ' 카테고리의 다른 글

Has~a exercise  (0) 2018.09.18
Has~A  (0) 2018.09.18
복사생성자  (0) 2018.09.17
C++ passing reference to pointer  (0) 2018.09.12
Namespace  (0) 2018.09.12