我试图理解一些C++代码,发现我的C++有点烂。除其他外,该代码还具有以下类结构(为简洁起见,不显示CLASS1
到CLASS3
):
class CLASS4
:public CLASS3
,public CLASS2{
public:
CLASS4(double VARA, double VARB, char VARC, int VARD, double VARE, std::vector<double> VARF, std::string VARG = "")
throw(Error);
CLASS4(const CLASS4&);
~CLASS4();
double METHOD1();
protected:
void METHOD2();
};
CLASS4::CLASS4(double VARA, double VARB, char VARC, int VARD, double VARE, vector<double> VARF, string VARG) throw(Error)
:CLASS1(VARC, VARD, VARE, VARF, VARG)
,CLASS2(VARB)
,CLASS3(VARA, VARC, VARD, VARE, VARF, VARG){}
CLASS4::CLASS4(const CLASS4& VARH)
:CLASS1(VARH), CLASS2(VARH), CLASS3(VARH){}
CLASS4::~CLASS4(){}
我了解对象的概念和继承的概念。我看到了
CLASS4
的构造函数和析构函数。我不明白的是继承:public CLASS3, public CLASS2
中的类列表。目的是什么?此外,我想知道throw(Error)
应该做什么。我也想知道第二个构造函数CLASS4(const CLASS4&);
的目的是什么。我知道这对于C++程序员来说将是一个简单的问题。 最佳答案
class CLASS4
:public CLASS3
,public CLASS2
是多重继承。 多重继承的目的的目的是使对象的功能同时具有 CLASS2 和 CLASS3 的功能,这是从 CLASS4 创建的(有关详细说明,请参见此页:http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Fcplr134.htm)
throw(Error)应该在发现错误时将您抛出Error,听起来可能很la脚,但是它用于异常处理:)(建议您阅读此页面以获得清晰的引用:http://msdn.microsoft.com/en-us/library/6dekhbbc(v=vs.80).aspx)
CLASS4(const CLASS4&);
是副本构造函数。 “复制构造函数是C++编程语言中的一种特殊构造函数,用于创建一个新对象作为现有对象的副本。” (引自Wikipedia。http://en.wikipedia.org/wiki/Copy_constructor)