gpt4 book ai didi

c++ - 类内部的强制初始化函数

转载 作者:太空宇宙 更新时间:2023-11-04 12:01:44 27 4
gpt4 key购买 nike

我有一个自定义形状类,针对此处的问题进行了简化,如下所示:

class Shape : public SpriteProperties{

};

SpriteProperties 类在哪里:

class SpriteProperties{
Point rotationPivotPoint;
Point rotationPivtoAxes;
float width, height, xPos, yPos, zPos;
Point color;
};

在用户的代码中,当用户初始化形状时,他使用了以下原型(prototype)的函数。函数中的参数是要表示的任何形状的必需属性。

void init(float _x, float _y, float _w, float _h, Point* _color)
{
//Initialize the shape
}

但是,我的形状还有其他属性,例如旋转枢轴点和轴,用户应在此初始化过程中以某种方式指定这些属性,并且这些旋转属性可能会/可能不会在以后为用户使用,具体取决于他是如何类的。

void prepareRotationParams(Point* _rotationPivot, Point* _rotationAxes)
{
//
}

我的问题:我正在考虑限制用户使用此准备旋转功能,该功能可能会在代码的稍后位置使用,同时我不想在 init 中提供准备旋转参数函数本身,因为这些不符合用户为任何形状必须明确指定的核心属性。理想的方法是什么?

最佳答案

使用默认参数:

void init(float _x, float _y, float _w, float _h, Point* _color, Point* rPivot=0, Point *rAxes=0)
{
//Initialize the shape
if (rPivot && rAxes) {
prepareRotationParams(rPivot, rAxes);
}
}

关于c++ - 类内部的强制初始化函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13854221/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com