게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c++에서 private속성의 정적멤버 변수는 무얼 의미하는 것이죠?
게시물ID : programmer_11542짧은주소 복사하기
작성자 : ㅜ_ㅠ
추천 : 0
조회수 : 723회
댓글수 : 14개
등록시간 : 2015/06/23 19:28:41
아래는 soen에 있는 예제인데요
static키워드를 붙여서 정적멤버 변수임을 선언했다는데요
근데 제가 알기로는 private속성은 절대 고치지 말라고 선언한건데 Count클래스 바깥에서 int Count::Num=0;문장으로 private속성의 Num의 값을 고쳤네요?
이러면 private속성을 한 의미가 없지 안나요?
그리고 static으로 정적멤버 변수를 함수 바깥에서 고칠 수 있다면 당연히 메인함수에서도 정적멤버 변수인 Num를 고칠 수 있을것 같은데 
main함수에서는 어떻게 고칠 수 있는지 잘 모르겠네요..
메인함수에서 정적멤버 변수를 고치려면 어떻게 해야 하는지 그리고 저렇게 private속성의 변수를 static키워드로 변수값을 변경가능하게 하면 public선언이나 마찬가지인데 왜 저렇게 변경 가능한 변수를 왜 그냥 public으로 선언하지 않고 굳이 번거롭게 private선언과 static키워드를 혼합해서 사용하는지 그 이유를 알고 싶네요.

#include <iostream>

//int Num=0;
class Count
{
private:
int Value;
static int Num;

public:
Count()
{Num++;}
~Count()
{Num--;}
void OutNum()
{
printf("현재 객체 개수=%d\n",Num);
}
};
int Count::Num=0;
void main()
{
Num=20;
Count C,*pC;
C.OutNum();
pC=new Count;
pC->OutNum();
delete pC;
C.OutNum();
printf("크기=%d\n",sizeof(C));
}
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호