반응형
Class의 기본 형태
class를 구현할 때 기본적인 모습은 다음과 같습니다.
class C_DATA
{
private:
...
public:
C_DATA();
C_DATA(const C_DATA &) = delete;
const C_DATA& operator=(const C_DATA &) = delete;
virtual ~C_DATA(); // class가 상속을 받는 다면 추가되어야할 내용
public:
void init();
void release();
void setData(int nData);
int getData();
};
생성자는 기본적인 초기화 작업을 하며 이후 초기 값 세팅은 init() 함수를 따로 구현하여 사용합니다.
소멸자의 경우 아무 일도 하지 않도록 하며 굳이 정의하지 않아도 되지만 만약 상속관계에 있다면 가상 소멸자의 형태로 정의해 주어야 합니다.
소멸자의 기능은 따로 release() 함수를 구현하여 사용합니다.
그리고 class의 기능에 따라 set이나 get으로 시작하는 함수를 구현하여 사용합니다.
그리고 복사생성자와 대입연사자의 호출을 막습니다.
상속 관계의 클래스를 구현하는 경우 다음과 같습니다.
__interface C_ANIMAL_INTERFACE
{
void move();
};
class C_ANIMAL abstract : public C_ANIMAL_INTERFACE
{
private:
...
public:
C_ANIMAL();
C_ANIMAL(const C_ANIMAL &) = delete;
const C_ANIMAL& operator=(const C_ANIMAL &) = delete;
virtual ~C_ANIMAL();
...
...
};
class C_CAT : public C_ANIMAL
{
private:
...
public:
C_CAT();
virtual ~C_CAT();
virtual void move();
...
...
};
반응형
'C++' 카테고리의 다른 글
[C++]static 정적 변수와 Class (0) | 2018.02.27 |
---|---|
[C++]friend 키워드 (0) | 2018.02.21 |
[C++]순수 가상함수와 추상 클래스, 인터페이스(interface) (0) | 2018.01.30 |
[C++]Class 상속 (0) | 2018.01.30 |
[C++]Class Operator와 대입연산자 (0) | 2018.01.25 |