본문 바로가기

C++

C++ - const

728x90

const는 상수를 선언할 때 사용된다. C에서는 #define 구문을 사용했었는데 C++에서는 const를 사용하는 것이 바람직하다. #define의 경우 전처리기가 처리하여 코드를 메타 수준으로 처리하여 언어의 구문과 의미를 신경 쓰지 않고 단순히 텍스트 매칭 작업을 수행한다. 반면 const의 경우 컴파일러가 처리하여 코드 문맥에 따라 처리할 수 있다는 장점이 있다.

const int myNum = 1;
const string myString = "Hello! Whales";

이처럼 변수에 const 키워드를 붙여서 정의하면 컴파일러가 해당 변수의 값이 변경되지 않도록 보장한다. 

 

-const 매개변수

non-const 변수를 const변수로 캐스팅 할 수 있는데 이를 이용하여 함수에 매개변수를 보낼 때 const로 캐스팅하고 보낼 수 있다. 이를 통해서 해당 매개변수가 함수 안에서 변경되지 않는 것을 보장할 수 있다.

#include <iostream>

using namespace std;

void myFunc(const string* anyString)
{
	*myString = "Hello! Wolf"; // 에러 발생
}

int main()
{
	string myString = "Hello! Whales";
    myFunc(&myString);
    return 0;
}

이러한 사용은 공동 작업시 동료가 작성한 함수를 호출할 때 매개변수가 변하지 않는 것을 원할 때 사용할 수 있다.

728x90

'C++' 카테고리의 다른 글

c - socket 프로그래밍  (0) 2023.04.04
C++ - 레퍼런스  (0) 2023.01.30
C++ - 스마트 포인터  (0) 2023.01.28
C++ - 포인터와 배열  (0) 2023.01.27
C++ - pointer  (0) 2023.01.23