c++中 是否该将父类和子类声明在同一个头文件中,是的话,如何声明?
展开全部
对于语言来说你怎么放都是一样的 你可以吧所有的类的声明和实现都写在一个头文件中,或是一个源文件中!
但是对于使用者来说最好的就是 一个类有头文件和源文件
不过如果基类的内容比较少的话 可以考虑和其中一个类同时放在一个头文件和源文件里! mfc很多是这么做的!
例(分开写):
*****testa.h********
class CTestA
{
protected:
int m_nValue1;
int m_nValue2;
public:
CTestA();
~CTestA();
public:
virtual int GetSum(int value1, int value2);
};
**********testa.cpp***********
CTestA::CTestA()
{
m_nValue1 = 0;
m_nValue2 = 0;
}
CTestA::~CTestA()
{
}
int CTestA::GetSum(int value1, int value2)
{
return value1 + value2;
}
********testb.h************
class CTestB:
public CTestA
{
protected:
int m_nValue3;
int m_nValue4;
public:
CTestB();
~CTestB();
public:
virtual int GetSum(int value1, int value2);
};
********testb.cpp**********
CTestB::CTestB()
{
m_nValue3 = 0;
m_nValue4 = 0;
}
CTestB::~CTestB()
{
}
int CTestB::GetSum(int value1, int value2)
{
return value1 * value2;
}
当然也可以两个头文件合并,两个源文件合并 只是这样看起来让人容易看明白些,写代码就像写书,除了给自己看 还要给比人看.希望楼主养成好的习惯.
但是对于使用者来说最好的就是 一个类有头文件和源文件
不过如果基类的内容比较少的话 可以考虑和其中一个类同时放在一个头文件和源文件里! mfc很多是这么做的!
例(分开写):
*****testa.h********
class CTestA
{
protected:
int m_nValue1;
int m_nValue2;
public:
CTestA();
~CTestA();
public:
virtual int GetSum(int value1, int value2);
};
**********testa.cpp***********
CTestA::CTestA()
{
m_nValue1 = 0;
m_nValue2 = 0;
}
CTestA::~CTestA()
{
}
int CTestA::GetSum(int value1, int value2)
{
return value1 + value2;
}
********testb.h************
class CTestB:
public CTestA
{
protected:
int m_nValue3;
int m_nValue4;
public:
CTestB();
~CTestB();
public:
virtual int GetSum(int value1, int value2);
};
********testb.cpp**********
CTestB::CTestB()
{
m_nValue3 = 0;
m_nValue4 = 0;
}
CTestB::~CTestB()
{
}
int CTestB::GetSum(int value1, int value2)
{
return value1 * value2;
}
当然也可以两个头文件合并,两个源文件合并 只是这样看起来让人容易看明白些,写代码就像写书,除了给自己看 还要给比人看.希望楼主养成好的习惯.
展开全部
每一个类都应该放在单独的2个文件中,一个是头文件,放声明代码;另一个是cpp源文件,放定义代码。 注:这是面向对象的编程方式。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般各个类在各自的头文件,和实现文件中比较好吧。但如果是写小程序,我看写在同一个头文件也无妨。
class parent //父类
{
public:
parent();
:
:
private:
:
:
};
class child : public parent //子类
{
public:
child();
:
:
private:
:
:
};
class parent //父类
{
public:
parent();
:
:
private:
:
:
};
class child : public parent //子类
{
public:
child();
:
:
private:
:
:
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是,自己管自己的就好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询