以下是我的 Sprite 类的精简版:
class Sprite
{
struct SpriteState {
Vector3 position;
int width, height;
double rotation, scaling;
};
std::map<int, SpriteState> stateVector;
}
我想通过一个看起来类似于以下内容的成员函数创建一个 SpriteState 对象:
SpriteState newSpriteState(
Vector3 position = stateVector.rbegin()->second.position,
int width = = stateVector.rbegin()->second.width,
int height = = stateVector.rbegin()->second.height,
double rotation = stateVector.rbegin()->second.rotation,
double scaling = stateVector.rbegin()->second.scaling)
{ SpriteState a; a.position = position; a.width = width; a.height = height; a.rotation = rotation; a.scaling = scaling; return a; }
我收到以下错误:
非静态成员引用必须相对于特定对象
类本身背后的基本思想是在精灵发生变化时存储它的各种状态,以便我可以在需要时轻松恢复到以前的状态。
然而,在大多数情况下,Sprite 仅使用新的位置值更新,而宽度、高度、旋转和缩放几乎保持不变 - 这意味着我只在弹出并再次保存上次保存的状态的引用时更改位置值其他值。
因此,我希望能够为函数设置默认值,这样我就不必费力地重复编写相同的值。
关于实施的任何可能的想法?