I
Ilia Poliakov
I have a following class hierarchy, but I dont know if it's right built:
//------------------------------ begin of example
1 ------------------------------
class InnerClass_A
{ .... };
class InnerClass_B : public InnerClass_A
{ .... };
class Main
{ ... };
class MainClass_A : public Main
{
InnerClass_A *m_pMember_A;
public:
MainClass_A (InnerClass_A *pMember) {
m_pMember_A = pMember;
};
InnerClass_A *getMember() {
return m_pMember_A;
};
};
class MainClass_B : public Main
{
InnerClass_B *m_pMember_B;
public:
MainClass_B (InnerClass_B *pMember) {
m_pMember_B = pMember;
};
InnerClass_B *getMember() {
return m_pMember_B;
};
};
//------------------------------ end of example
1 ------------------------------
May be I can change it to this:
//------------------------------ begin of example
2 ------------------------------
class MainClass_A : public Main
{
InnerClass_A *m_pMember;
public:
MainClass_A (InnerClass_A *pMember) {
m_pMember = pMember;
};
InnerClass_A *getMember() {
return m_pMember;
};
};
class MainClass_B : public MainClass_A
{
public:
MainClass_B (InnerClass_B *pMember) {
m_pMember = pMember;
};
InnerClass_B *getMember() {
return (InnerClass_B *)m_pMember;
};
};
//------------------------------ end of example
2 ------------------------------
I'm new to C++ and need your advice: which version is better or may be both
are bad....
//------------------------------ begin of example
1 ------------------------------
class InnerClass_A
{ .... };
class InnerClass_B : public InnerClass_A
{ .... };
class Main
{ ... };
class MainClass_A : public Main
{
InnerClass_A *m_pMember_A;
public:
MainClass_A (InnerClass_A *pMember) {
m_pMember_A = pMember;
};
InnerClass_A *getMember() {
return m_pMember_A;
};
};
class MainClass_B : public Main
{
InnerClass_B *m_pMember_B;
public:
MainClass_B (InnerClass_B *pMember) {
m_pMember_B = pMember;
};
InnerClass_B *getMember() {
return m_pMember_B;
};
};
//------------------------------ end of example
1 ------------------------------
May be I can change it to this:
//------------------------------ begin of example
2 ------------------------------
class MainClass_A : public Main
{
InnerClass_A *m_pMember;
public:
MainClass_A (InnerClass_A *pMember) {
m_pMember = pMember;
};
InnerClass_A *getMember() {
return m_pMember;
};
};
class MainClass_B : public MainClass_A
{
public:
MainClass_B (InnerClass_B *pMember) {
m_pMember = pMember;
};
InnerClass_B *getMember() {
return (InnerClass_B *)m_pMember;
};
};
//------------------------------ end of example
2 ------------------------------
I'm new to C++ and need your advice: which version is better or may be both
are bad....