티스토리 뷰
정적 멤버변수 & 정적 멤버함수
-> 동일한 클래스로부터 생성되는 객체에 의해 공유되는 변수
: Color 클레스의 정적 멤버변수 A를, Color 클레스로 생성된 모든 객체에서 공유하여 사용.
-> static 키워드를 이용하여 지정
-> 객체의 생성 없이도 사용 가능
-> static 멤버변수가 별도의 static 영역에 저장되기 때문
정적 멤버변수
class Color {
private:
static int s_count;
};
int Color::s_count = 0;
int main()
{
// main 프로그램 영역
}
-> 객체가 만들어질 때 생성되는 것이 아님.
=> 프로그램 내부의 적절한 위치에서 위와같이 전역 변수와 동일한 방법으로 초기화.
-> 생성 및 사용 시 범위 연산자 ::(Scope Resolution Operator)를 클래스의 이름과 함께 사용.
=> 클래스 내부에서는 일반적인 멤버변수와 동일한 방법으로 사용.
정적 멤버함수
class Color {
private:
static int s_count;
public:
static int count();
};
int main()
{
Color::count();
}
-> 정적 멤버함수는 객체의 생성없이 사용이 가능하기 때문에 정적 멤버함수(static member function) 내부에 일반 멤버 변수 또는 함수는 사용할 수 없고, 반드시 정적(static) 함수 또는 변수만 사용할 수있다.
고정(const) 멤버함수 : 함수 내부에서 클래스의 멤버변수의 값을 변경할 수 없는 함수
-> const키워드로 지정
-> 일반 멤버변수의 값을 변경할 수 없음.
-> 일반 멤버함수의 호출 불가능
-> 고정 멤버함수만 호출 가능(const 키워드가 붙은 멤버 함수)
'Programming > C / C++' 카테고리의 다른 글
메모리 릭 검출 방법 (0) | 2014.09.18 |
---|---|
포인터 동적 할당 (0) | 2014.09.17 |
객체 포인터 & 가상함수 & 가상 소멸자 (0) | 2014.09.04 |
[C++]함수 템플릿(Function Template) (0) | 2014.08.25 |
[C++]매크로 함수 / inline 함수 (0) | 2014.08.25 |