오늘은 C++ 상수에 대해서 알아보도록 하겠습니다. 수는 프로그램에서 변하지 않는 값을 저장하고 사용하는 데 중요한 역할을 합니다. C++은 여러 유형의 상수를 지원하며, 이러한 상수를 활용하여 프로그램의 가독성과 유지보수성을 향상할 수 있습니다.
[ 목차 ]
C++ 상수(Constant) 강의
1. 상수의 개념
1.1 상수란?
상수는 프로그램에서 변하지 않는 값을 나타내는 식별자(identifier)입니다. 즉, 한 번 정의된 상수는 프로그램 실행 동안 그 값을 변경할 수 없습니다. 이러한 불변성은 프로그램의 안정성과 가독성을 향상합니다.
1.2 상수의 활용
매직 넘버(Magic Number) 방지: 상수를 사용하면 숫자 리터럴을 직접 사용하는 것보다 가독성이 높아집니다.
코드 수정 용이성: 상수를 사용하면 상수 값을 한 곳에서 변경하면 해당 값을 참조하는 모든 곳에서 변경됩니다.
const int MAX_COUNT = 100;
int numbers[MAX_COUNT];
2. 리터럴 상수(Literal Constants)
2.1 리터럴 상수란?
리터럴 상수는 프로그램 코드에서 값 자체를 나타내는 상수입니다. 주로 숫자, 문자, 문자열, 불리언 값을 나타내는 데 사용됩니다.
int x = 42; // 42는 리터럴 정수 상수
char letter = 'A'; // 'A'는 리터럴 문자 상수
3. const 한정자
3.1 const 한정자란?
const 한정자는 변수를 상수로 선언하는 데 사용됩니다. const로 선언된 변수는 값을 변경할 수 없습니다.
const int MAX_VALUE = 100;
3.2 const와 가변성
const를 사용하면 변수의 가변성을 제한할 수 있습니다. 즉, 해당 변수는 읽기 전용(read-only)이 됩니다.
const int pi = 3.141592;
pi = 4; // 에러: 상수에 대한 할당 시도
4. 열거형 상수(Enum Constants)
4.1 열거형 상수란?
열거형(enum) 상수는 관련된 상수 값을 그룹화하는 데 사용됩니다. 각 열거 상수는 고유한 정수 값을 가집니다.
enum Color {
RED, // 0
GREEN, // 1
BLUE // 2
};
Color selectedColor = GREEN;
5. 매크로 상수(Macro Constants)
5.1 매크로 상수란?
매크로 상수는 전처리기 매크로를 사용하여 정의됩니다. 매크로는 코드 전처리 단계에서 텍스트 치환을 수행하므로 주의가 필요합니다.
#define MAX_SIZE 100
int numbers[MAX_SIZE];
6. 상수의 자료형
6.1 상수의 자료형
상수는 자료형을 가집니다. 자료형은 해당 상수가 어떤 유형의 데이터를 나타내는지를 정의합니다.
const double PI = 3.141592; // double 자료형 상수
const int MAX_COUNT = 100; // int 자료형 상수
7. 상수와 함수
7.1 상수와 함수 매개변수
함수 매개변수를 const로 선언하면 해당 매개변수를 변경하지 않겠다는 의도를 나타낼 수 있습니다. 이는 함수의 안정성을 높이고 의도치 않은 변경을 방지합니다.
void printValue(const int value) {
// value를 변경할 수 없음
std::cout << value << std::endl;
}
8. 상수와 클래스
8.1 상수와 클래스 멤버 함수
클래스 멤버 함수 내에서 const 키워드를 사용하면 해당 함수에서 객체의 상태를 변경하지 않겠다는 의도를 나타냅니다. 이로써 상수 객체에서만 호출할 수 있는 함수를 정의할 수 있습니다.
class Circle {
public:
double getArea() const {
return PI * radius * radius;
}
private:
const double PI = 3.141592;
double radius;
};
마무리
C++에서 상수는 가변성을 제한하고 프로그램의 가독성을 향상시키는 데 중요한 역할을 합니다. 리터럴 상수, const 상수, 열거형 상수 등 다양한 상수를 활용하여 프로그램을 작성하면 코드의 안정성과 유지보수성을 향상할 수 있습니다. 상수의 사용은 C++ 프로그래밍에서 필수적인 개념 중 하나이며, 실무에서는 올바르게 사용하는 것이 중요합니다.
'C++' 카테고리의 다른 글
C++ 기본 타입 알아보기 (0) | 2023.10.13 |
---|---|
C++ 변수 알아보기 (1) | 2023.10.09 |
C++ iostream 알아보기 (0) | 2023.10.04 |