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;
}