상수(const)란?
프로그램에서 변하지 않는 숫자나 문자를 의미한다. 만약 프로그램에서 특정 상수가 여러 번 사용된다면, 그 상수를 변수에 저장해서 사용하는 것이 편리하다. 이 때, 상수를 저장해둔 변수의 내용이 수정된다면 프로그램이 정상적으로 처리되지 않을 가능성이 매우 높아지게 된다. 때문에 이러한 상황을 막기 위해 const 를 이용하여 저장해둔 변수의 내용을 수정할 수 없도록 한다. 수정하려고 하면 에러가 발생되도록 한다. const는 다른 일반 변수와 구별하기 위해 일반적으로 모두 대문자로 만들어 사용한다.
C++ 에서 상수를 정의하는 방법은 다음과 같다. "const 자료형 상수이름 = 값;"
상수는 반드시 선언과 동시에 초기화시켜야 한다. 비쥬얼 스튜디오 2017부터는 멤버 변수를 선언할 때, "=" 를 사용한 초기화가 가능하므로 상수 선언 시 "="를 사용해서 초기화시키거나 상수 선언 후 생성자의 초기화 리스트를 이용해서 초기화 시켜야 한다.
1
2
3
4
5
6
7
8
9
|
class Circle {
private:
double radius = 0.0;
public:
const int LIMIT = 100;
const double PI = 3.141592;
// 비쥬얼 스튜디오 2017 전에는 아래와 같이 상수를 선언만 한 후 생성자의 초기화 리스트를 사용하였다.
// const double PI;
|
cs |
생성자에서 초기화 리스트를 사용하려면 생성자의 ")" 뒤에 ":" 을 찍고 상수이름(초기치) 형태로 적어준다. 초기화 리스트에서 초기화 시켜야 할 항목이 2개 이상이라면 "," 로 구분해서 사용하면 된다. 초기화 리스트를 사용해서 멤버 변수를 초기화 시킬 수 있다.
1
2
3
4
5
6
7
8
9
10
11
|
Circle() : PI(3.141592), radius(0.0) {
}
Circle(double radius) : PI(3.141592) {
this->radius = radius;
}
void toString() {
cout << "반지름 : " << radius << endl;
}
|
cs |
예시를 들기 위해 원의 너비와 원의 둘레를 계산해서 출력하는 함수를 만든다.
1
2
3
4
5
6
7
8
|
void circumference() {
cout << "반지름이 " << radius << "인 원의 둘레는 " << 2 * PI * radius << endl;
}
void area() {
cout << "반지름이 " << radius << "인 원의 너비는 " << PI * pow(radius, 2) << endl;
}
|
cs |
1
2
3
4
5
6
7
8
9
10
|
// PI = 1.2345; // 상수로 사용할 변수에 저장된 값을 변경하려 했으므로 에러가 발생된다.
Circle circle1;
cout << "PI = " << circle1.PI << endl;
circle1.toString();
Circle circle2(10);
circle2.toString();
circle2.circumference();
circle2.area();
|
cs |
출력
'C, C++' 카테고리의 다른 글
C++/구조체 (0) | 2020.01.13 |
---|---|
C++/template/함수 템플릿/템플릿에 관하여 (0) | 2020.01.13 |
C++/call by value, call by reference (0) | 2020.01.13 |
C++/달력 만들기 헤더 파일/ (0) | 2020.01.10 |
C++/왕복버블정렬 알고리즘 (0) | 2020.01.08 |