일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- github
- jupyter lab
- Python
- Unity
- C# delegate
- 유니티
- docker
- 깃
- Flutter
- 다트 언어
- Data Structure
- gitlab
- Houdini
- HTML
- 포인터
- c언어
- git
- 도커
- vim
- Algorithm
- C++
- jupyter
- c# 추상 클래스
- c#
- 플러터
- dart 언어
- c# 윈폼
- c# winform
- C언어 포인터
- 구조체
Archives
- Today
- Total
nomad-programmer
[Programming/C++] const 함수 본문
const 함수를 사용하는 이유
- 멤버 변수의 값을 변경하지 않는 멤버 함수
멤버 함수 안에 멤버 변수의 값을 변경하는 코드가 없다는 뜻이다. 멤버 변수의 값을 읽는 것은 상관 없다.
그렇다면 멤버 함수를 const로 만드는 것은 어떤 의미가 있을까? 크게 세 가지 정도의 의미를 찾아볼 수 있다.
- 다른 개발자가 "이 함수에는 멤버 변수의 값을 변경하지 않는구나" 라고 생각하게 만든다.
- 실수로 멤버 변수의 값을 바꾸려고 하면, 컴퓨터가 오류 메시지를 통해 알려준다.
- const 객체를 사용해서 이 함수를 호출할 수 있다.
const Point pt(123, 234);
문법만 보면 기존에 기존 타입의 변수를 const로 정의하던 것과 다를 것이 없다. 기본 타입의 변수가 const라면 그 변수의 값을 바꿀 수가 없었는데, 객체가 cosnt인 경우에는 해당 객체의 멤버 변수의 값을 바꿀 수가 없다.
const 객체의 멤버 변수에 접근해서 값을 바꾸려고 하면 오류 메시지가 발생한다. 또한 멤버 변수의 값을 바꾸는 멤버 함수를 호출하는 경우에도 오류 메시지가 발생한다. 하지만 멤버 변수의 값을 바꾸지 않는 const 멤버 함수를 호출하는 것은 허용한다.
가능한 거의 모든 멤버 함수를 const로 만들어주는 것이 좋다.
class Point{
void Coordinates(void) const { }
'Programming > C++' 카테고리의 다른 글
[Programming/C++] virtual, override, final 키워드 (0) | 2023.01.16 |
---|---|
[Programming/C++] 멤버 함수에 대한 포인터 (0) | 2023.01.16 |
[Programming/C++] inline 함수 (0) | 2023.01.16 |
[Programming/C++] 구조체의 비트 필드 (0) | 2023.01.14 |
[Programming/C++] 포인터와 const의 사용 (0) | 2023.01.09 |
Comments