static 멤버

    instance의 멤버가 아닌 Class의 멤버

    해당 클래스의 전체 instance를 관리하기 위한 목적의 멤버라 할 수 있다.

    static 멤버 속성은 소스파일(class  정의문 밖)에 변수 선언을 통해 구체화 시켜야 함

    static 멤버 메소드에서는 static 멤버에만 접근이 가능하다.

    static 멤버 속성을 위한 메모리는 프로그램 시작시 할당된다. (다른 멤버 속성은 instance의 생성시 할당됨)

    클래스명과 스코프 연산자 멤버명으로 접근 가능하다.(접근 권한이 있을 시)

   const 멤버

    const 멤버 속성은 생성자 initilalize하여야 한다.

    const 멤버 메소드는 signature뒤에 const가 붙는다.(선언 및 정의에 둘다)

    const 멤버 메소드는 멤버 속성을 변경할 수 없다.(즉, const 멤버 메소드만 호출할 수 있다.)

 class Stu

    {

        const int num;

        char *name;

        static int scnt;

        ...

    public:

        Stu(const char *_name);

        ...

        int HowManyStues()const;

    private:

       static int SetNum();  

    };

    int Stu::scnt=0;

    Stu::Stu(const char *_name):num(SetNum())//Initialize

    {

       ...

    }

    int Stu::HowManyStues()const

    {

         return scnt;

    }

    int Stu::SetNum()

    {

        scnt++;

        return scnt;

    }

 

    void Foo()

    {

         cout<<"현재 학생 수는"<<Stu::HowMany()<<"입니다."<<endl;

    }


'COMPUTER TECH > C, C++' 카테고리의 다른 글

퀵 정렬  (0) 2010.08.12
힙 트리  (0) 2010.08.12
피보나치 수열  (0) 2010.08.12
MyVector만들기  (0) 2010.08.12
최단경로 알고리즘  (0) 2010.08.09
Static Member 와 Const Member  (0) 2010.08.09
Posted by ... XJAPAN