단일/다중 상속을 사용할 때/앞으로 선언을 할 때 이해가 안되다 & 다음 예제에서 더 잘 이해하고 싶습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있거나 그들 사이의 차이점을 설명 할 수 있다면, 그것은 크게 감사 할 것입니다.클래스/구조체 디자인; 상속 vs 전달 선언
다음은 내가 다루는 데이터 구조의 샘플입니다.
부모가 1 명, 하위가 1 명입니다. & 많은 개가 있습니다. 어린이 유형입니다. 즉, 부모 당 SubParent 당 많은 Children이 있습니다. 어떤 어린이는 다른 Children 객체에 액세스해야합니다. 아이들은 ParseSelf/Display/Save/Edit 같은 비슷한 기능을 사용할 것입니다. 자녀가 변경 (즉, 편집/저장) 될 경우 SubParent의 데이터도 업데이트해야합니다 (부모 & 가능).
나는 이런 식으로 구현하는 가장 좋은 방법이 무엇인지 알고 싶습니까? 아래 두 가지 대안을 생각해 냈습니다. 더 많은 설명/정보가 필요하면 알려주십시오.
class SubParent;
class Children;
class Parent
{
...
int iParent;
SubParent *pSubParent;
};
class SubParent
{
...
int iSubParent;
std::list<Children> childrenList;
};
class Children
{
...
int iChild;
int ChildType;
char *pData;
};
대;
class Parent
{
...
int iParent;
};
class SubParent : public Parent
{
...
int iSubParent;
};
class Children : public SubParent
{
...
int iChild;
int ChildType;
char *pData;
};
감사합니다.
편집 : 학부모의 주요 직업; SubParent 위치, SubParent 크기, 자기를 포함한 모든 데이터의 전체 크기 등 파일에 대한 정보를 유지 관리합니다. SubParent의 주요 작업; 어린이의 크기 즉 & 어린이에 대한 정보가 들어 있습니다. 부모/하위 부모 모두이 항목을 최신으로 유지하는 것 외에는 그다지 많은 것을하지 않습니다.
당신에 대해 얘기하고 상속 대 ** 조성물. ** 당신은이 클래스가 무엇을해야하는지에 대한 우리에게 충분한 정보를 제공하지 않은,하지만 첫 번째 방법은 아마 더 좋다. – Beta
@ 베타 내 질문을 편집하여 추가 정보를 추가하겠습니다. – ReturnVoid
무엇을 하려는지 확실하지 않습니다. 클래스 나 인터페이스를 작성하기 전에 항상 ** 샘플 사용 코드를 먼저 작성하십시오. – yngccc