티스토리 뷰

정적 멤버변수 & 정적 멤버함수

-> 동일한 클래스로부터 생성되는 객체에 의해 공유되는 변수

: 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 키워드가 붙은 멤버 함수)



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함