C++의 const 키워드

Migel Hewage Nimesha 2023년10월12일
  1. C++에서 Const 변수 선언
  2. C++에서 포인터와 함께 const 사용
  3. C++의 const 변수에 대한 포인터 변수
  4. C++의 값에 대한 const 포인터 변수
  5. C++의 const 변수에 대한 const 포인터 변수
  6. C++의 const 멤버 함수 및 const 개체
C++의 const 키워드

C++에서 상수를 나타내는 const 키워드는 전체 프로그램에서 특정 값/값을 일정하게 만드는 데 사용됩니다.

변수/객체/함수가 안정적으로 선언되면 컴파일러는 프로그래머가 프로그램의 나머지 부분에서 할당된 값을 수정하도록 허용하지 않습니다.

프로그램이 실행되는 동안 중단 없이 실행되도록 합니다. 프로그래머가 나중에 값을 변경하려고 하면 컴파일러는 컴파일 오류를 표시합니다.

const의 주요 장점은 전체 프로그램에서 특정 값/값을 일정하게 유지할 수 있다는 것입니다. 앞서 언급했듯이 컴파일러는 다른 방법으로는 불가능한 특정 최적화를 수행할 수 있습니다.

const 키워드는 다양한 프로그래밍 요구 사항을 해결하기 위해 프로그램에서 특정 방식으로 사용할 수 있습니다.

C++에서 Const 변수 선언

변수를 상수로 만들 때 변수는 선언할 때 항상 초기화해야 합니다. 변수가 말한 후에는 코드의 다른 부분에서 값을 변경할 수 없습니다.

변수를 상수로 선언하려면;

const int x = 1;

C++에서 포인터와 함께 const 사용

포인터와 함께 const 키워드를 사용하는 세 가지 방법이 있습니다.

  • const 값에 대한 포인터 변수.
  • 값에 대한 const 포인터 변수.
  • const 변수에 대한 const 포인터.

C++의 const 변수에 대한 포인터 변수

포인터가 상수 변수를 가리키고 있음을 의미합니다. 포인터가 가리키는 변수의 값을 사용할 수는 있지만 포인터를 사용하여 변수의 값을 변경할 수는 없습니다.

const int* y;

문자열이나 배열을 변경할 수 없게 만들 때 유용합니다.

C++의 값에 대한 const 포인터 변수

여기서 포인터는 상수이지만 포인터의 값은 일정하지 않습니다. 따라서 값을 변경할 수 있습니다.

또한 값을 변경하더라도 포인터의 메모리 위치를 변경할 수 없습니다. 스토리지가 값을 변경하지만 메모리 위치는 변경하지 않을 때 필수적입니다.

int z = 2;
const int* y = &z;

C++의 const 변수에 대한 const 포인터 변수

이 상황에서 값이 할당된 후에는 포인터 변수나 포인터가 가리키는 변수의 값을 변경할 수 없습니다.

int i = 3 const int* const j = &i;

C++의 const 멤버 함수 및 const 개체

C++는 객체 지향 프로그래밍 언어이며 생성된 객체가 프로그램의 어떤 부분에서도 변경을 추구하지 않는 경우가 있습니다.

따라서 const 키워드를 사용하여 객체를 상수로 만드는 것은 이와 같은 상황에서 매우 유용할 수 있습니다. 객체가 const로 선언되어야 하는 경우 선언 순간에 초기화되어야 합니다.

개체가 초기화된 후에는 프로그램의 나머지 기간 동안 개체에 지정된 치수를 변경할 수 없습니다.

컴파일러에서 컴파일 오류가 발생합니다. 다음은 const 개체의 예입니다.

#include <iostream>
using namespace std;

class length {
 public:
  int x;
  length(int y) { x = y; }
};

int main() {
  const length obj1(15);
  cout << "The length of object 1 is " << obj1.x << endl;
  return 0;
}

출력:

The length of object 1 is 15

함수가 선언되고 const가 오면 상수 함수가 생성됩니다. 주로 const 객체와 함께 사용됩니다.

멤버 함수가 const 객체를 통해 호출되면 멤버 함수가 객체를 변경하려는 의도인지 여부에 관계없이 컴파일러에서 오류가 발생한다는 점에 유의하는 것이 중요합니다.

다음은 const 멤버 함수의 예입니다.

#include <iostream>
using namespace std;

class length {
 public:
  int x;
  length(int y) { x = y; }
  int getvalue() const { return x; }
};

int main() {
  const length obj1(15);
  cout << "The length of object 1 is " << obj1.getvalue() << endl;
  return 0;
}

출력:

The length of object 1 is 15

const의 요점은 수정해서는 안 되는 것을 수정하는 것을 허용하지 않는다는 것입니다.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

관련 문장 - C++ Const