C++ 使用父类';具有相同名称和参数的s函数
我有以下课程:C++ 使用父类';具有相同名称和参数的s函数,c++,class,C++,Class,我有以下课程: class CPolygon { SPolygon* data; // will be populated by constructor // ... members here ... public: CPolygon(); CPolygon(int type); SPolygon getData(int index); // ... methods here ... }; class CSquare : public CPolygon { // .
class CPolygon
{
SPolygon* data; // will be populated by constructor
// ... members here ...
public:
CPolygon();
CPolygon(int type);
SPolygon getData(int index);
// ... methods here ...
};
class CSquare : public CPolygon
{
// ... members here ...
public:
CSquare();
SSquare getData(int index);
// ... methods here ...
};
第二个CPolygon()
构造函数接受所需的多边形类型
有没有办法在CSquare()
构造函数上调用这个(第二个)构造函数来传递square type的值,比如:
CSquare::CSquare()
{
CPolygon(TYPE_SQUARE);
}
要生成正方形的数据
编辑
我添加了新成员和方法/函数。这是结构(和联合):
我想返回平方数据:
SSquare CSquare::getData(int index)
{
return getData(index).square;
}
但是getData()
(函数内部)被认为是CSquare
,但我需要它是CPolygon
。如何使用?您可以使用:
这将首先根据正确的类型调用CPolygon
的构造函数,然后执行CSquare()
构造函数体
注意:初始化列表不仅适用于超类,也适用于普通类成员。有关示例,请参阅
对于已编辑的问题,请使用CPolygon::getData
调用指定版本的getData
:
SSquare CSquare::getData(int index)
{
return CPolygon::getData(index).square;
}
对于您编辑过的问题,请查看我的最新答案。谢谢您的回答。@rewbough很高兴能提供帮助。
CSquare::CSquare(): CPolygon(TYPE_SQUARE) {}
SSquare CSquare::getData(int index)
{
return CPolygon::getData(index).square;
}