Cpp - static, const 키워드

eelijus·2022년 5월 19일
0

Cpp/C++

목록 보기
7/10

💡 static 멤버 변수, static 멤버 함수, const 멤버 변수, const 멤버 함수

Static


static 멤버 변수

static 멤버 변수와 기존 멤버 변수는 무슨 차이가 있을까?

  • 일반적인 멤버 변수의 경우, 해당 클래스를 통해 생성된 객체마다 해당 변수의 메모리가 각자 할당되어 서로 영향을 주지 않는다.
  • static 멤버 변수의 경우, 해당 클래스를 통해 생성된 모든 객체의 해당 변수가 동일한 메모리를 공유함. 따라서 어떤 객체에서 static 멤버 변수의 값을 변경하면 다른 객체에서도 같이 변경된다. 즉, 클래스 내의 전역변수인 셈.

staic 멤버 함수

멤버 함수는 static으로 선언하면, 특정 객체에 속한 멤버 함수가 아닌 클래스 자체에 속한 멤버 함수이므로, 객체를 생성하지 않고 클래스명을 이용하여 호출하는 것이 가능해진다.

ClassName::methodName();

static 멤버 함수는 static 멤버 변수만 사용 가능하다.

Const


const 멤버 변수

const 멤버 변수는 한 번 초기화되면 데이터의 변경이 불가능하다. 보통 클래스 전체에서 공유되고, 값이 변경되면 안되는 변수의 경우 const키워드를 붙여 안정성을 높인다.
const(상수) 변수는 선언과 동시에 초기화가 이루어져야 하므로, 생성자 중 이니셜라이저를 통해서만 초기화가 가능하다.


const 멤버 함수

const 멤버 함수는 상수 함수와 마찬가지로 호출한 객체의 데이터를 변경할 수 없는 멤버 함수이다. 즉, const 키워드가 붙은 함수는 클래스 내부의 멤버 변수를 변경시킬 수 없음.

profile
sujileelea

0개의 댓글