我有以下课程:
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()
传递平方类型的值的构造函数上调用这个(第二个)构造函数,例如:
CSquare::CSquare()
{
CPolygon(TYPE_SQUARE);
}
制作正方形的数据?
编辑
我添加了新成员和方法/功能。这是结构(和联合):
union SPolygon
{
SHead head;
SSquare square;
// ... more structure here ...
}
struct SSquare
{
SHead head;
// ... more membere here ...
}
我想返回平方数据:
SSquare CSquare::getData(int index)
{
return getData(index).square;
}
但是getData()
(函数内部)被认为是CSquare
's,但我需要它是CPolygon
's。如何?