[code]// objCnt2.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//
#include "stdafx.h"
class Count
{
private:
int Value;
static int Num;
public:
Count() { Num++; }
~Count() { Num--; }
/*
객체의 개수를 출력하는 OutNum 함수도 개별 객체에 대한 함수가 아니기 때문에
정적 멤버 함수로 수정할 수 있다. OutNum 함수가 객체로부터 호출되지 않으므로
이제 객체가 전혀 생성되지 않은 상태, 즉 Num이 0인 상태에 대한 출력도 가능하다.
정적 멤버 함수가 아니면 이런 호출은 불가능하다. main에서 지역 객체 C를
생성하기 전에 Count::OutNum()을 호출했는데 이 호출문은 0을 출력하며 아직
생성된 객체가 없다는 것을 보여 준다.
*/
static void InitNum() {
Num=0;
}
static void OutNum() {
printf("현재 객체 개수 = %d\n",Num);
}
};
int Count::Num;
int _tmain(int argc, _TCHAR* argv[])
{
Count::InitNum();
Count::OutNum();
Count C,*pC;
C.OutNum();
pC=new Count;
pC->OutNum();
delete pC;
pC->OutNum();
printf("%d",sizeof(C));
return 0;
}[/code]
//
#include "stdafx.h"
class Count
{
private:
int Value;
static int Num;
public:
Count() { Num++; }
~Count() { Num--; }
/*
객체의 개수를 출력하는 OutNum 함수도 개별 객체에 대한 함수가 아니기 때문에
정적 멤버 함수로 수정할 수 있다. OutNum 함수가 객체로부터 호출되지 않으므로
이제 객체가 전혀 생성되지 않은 상태, 즉 Num이 0인 상태에 대한 출력도 가능하다.
정적 멤버 함수가 아니면 이런 호출은 불가능하다. main에서 지역 객체 C를
생성하기 전에 Count::OutNum()을 호출했는데 이 호출문은 0을 출력하며 아직
생성된 객체가 없다는 것을 보여 준다.
*/
static void InitNum() {
Num=0;
}
static void OutNum() {
printf("현재 객체 개수 = %d\n",Num);
}
};
int Count::Num;
int _tmain(int argc, _TCHAR* argv[])
{
Count::InitNum();
Count::OutNum();
Count C,*pC;
C.OutNum();
pC=new Count;
pC->OutNum();
delete pC;
pC->OutNum();
printf("%d",sizeof(C));
return 0;
}[/code]
'Native > C++' 카테고리의 다른 글
상수 멤버 (0) | 2013.10.02 |
---|---|
정적 멤버변수 이용 (0) | 2013.10.02 |
정적 맴버 변수 (0) | 2013.10.02 |
[.NET] wchar_t 타입 (0) | 2013.10.02 |
정보은폐 (0) | 2013.10.02 |