const에 관한 얘기
2020. 9. 13. 23:11ㆍ컴퓨터 수업/C++
@일반변수
1.
일반변수에 const를 지정해놓았다면 이니셜라이징이 필요하다 (초기화가 필요하다.)
2.
rvalue로 선언되었기 때문에, 수정할 수 없다.
3.
일반변수의 경우엔 datatype 앞에 const가 오든, 뒤에 오든 차이가 없다.
@포인터변수
1.
const int
즉, constant한 int라고 생각하면 된다. 따라서 pointerVariable이 가르키는 방향 (담고있는 메모리 주소)는 바뀔 수 있으나, 그것이 가르키는 방향에 있는 "자료"는 int로 constant해야한다.
근데 사실 좀 어불성설이긴 해, 메모리 주소를 바꾸면 그 방향에 있던 값도 바뀔텐데 이게 뭐하는건가
싶기도 하고... 그저 포인터변수가 아닌 일반변수 세상에서 바꿀 수 없다고 이해를 해 두자
메모리주소는 바꿀 수 있는것을 보였다.
2.
int const는 const int와 같다고 생각해두자 일단은
3.
이로써 알게되었다. const는 그 바로 뒤에 있는것을 const하다고 생각한다.
따라서 int const * 가 아닌, int * const pointerVariable에서 pointerVariable을 const 하다고 생각한다.
@메소드 (멤버 함수)
메소드의 argument () 란 뒤에 const를 붙이면 이 메소드(멤버 함수)를 통해 필드(데이터 멤버)를 조작할 수 없다.
@참조자(Reference)
이런식으로 참조자 변수가 원래의 변수를 조작하는걸 막는것에 쓴다. 중요!
'컴퓨터 수업 > C++' 카테고리의 다른 글
main함수의 아규먼트// argc & argv (0) | 2020.09.18 |
---|---|
파일 입출력(fstream) (0) | 2020.09.14 |
연산자 오버로드(operator overload)//ostream 나중에 채워넣기 (0) | 2020.09.10 |
friend 함수 (0) | 2020.09.10 |
오버로딩과 다형성 (오버로딩은 그냥 다른 datatype 지원 그 자체다.) (0) | 2020.09.10 |