반응형
#include <iostream>
using namespace std;
class ask
{
public:
static int cnt; // 객체 생성시 객체 생성수 카운트
static void print();
int obj;
ask();
ask(const ask& pt);
~ask(); // 소멸자
};
int ask::cnt=0; // static 변수 초기화
void ask::print()
{
cout << cnt << endl;
}
ask::ask()
{
obj=0;
cnt++; // 객체 생성시 카운트 업
}
ask::ask(const ask& pt)
{
obj=pt.obj;
cnt++; // 객체 생성시 카운트 업
}
ask::~ask()
{
cnt--; // 객체 해제시 카운트 다운
}
void f();
int main()
{
ask a;
ask::print(); // static이므로 객체가 아닌 클래스가 소유 -> 클래스::함수();
ask b; // 2번째 객체 생성
ask::print();
f(); // 함수 호출해서 소멸자의 역할 확인
ask::print(); // f()함수 종료 후의 객체 수 확인
return 0;
}
void f()
{
ask c;
ask d; // 2개의 객체 생성
ask::print();
}
반응형
'System Programmings > C++' 카테고리의 다른 글
[C++] typedef로 멤버 함수 포인터 사용 (0) | 2010.07.05 |
---|---|
[C++] typedef로 함수 포인터 사용 (0) | 2010.07.05 |
[C++] 동적 할당 및 소멸자 사용 (얕은 복사의 문제점) (0) | 2010.07.05 |
[C++] C++ 문자열 스타일 (0) | 2010.07.05 |
[C++] 클래스 기본 구성 및 접근자 (0) | 2010.07.03 |