将东西添加到父 class 的 Update 方法
Add things to the Update method of parent class
我有两个 classes:
class Object {
public: void Update();
};
class Cube : public Object {
void Update();
};
我想要一个 Update() 方法来执行我告诉它的所有操作,然后执行来自父 class 的 Update 所做的所有操作。我可以这样做吗?
也许您想稍微改变一下您的设计。
像这样的东西可以做你想做的事:
class Object {
public:
void Update(
// invoke method from derived
onUpdate();
// do stuff in base
);
protected:
virtual void onUpdate() = 0;
};
class Cube : public Object {
void onUpdate() {
// do stuff in derived
}
};
你可以简单地在 Cube 的更新函数中写 Object::update()
但通常认为重新定义继承的非虚函数是不好的做法所以我建议你也使 update
虚拟
class Object {
public:
virtual void update(){ /* ... */ }
};
class Cube : public Object {
public:
void update() override {
// ...
Object::update();
}
};
我有两个 classes:
class Object {
public: void Update();
};
class Cube : public Object {
void Update();
};
我想要一个 Update() 方法来执行我告诉它的所有操作,然后执行来自父 class 的 Update 所做的所有操作。我可以这样做吗?
也许您想稍微改变一下您的设计。 像这样的东西可以做你想做的事:
class Object {
public:
void Update(
// invoke method from derived
onUpdate();
// do stuff in base
);
protected:
virtual void onUpdate() = 0;
};
class Cube : public Object {
void onUpdate() {
// do stuff in derived
}
};
你可以简单地在 Cube 的更新函数中写 Object::update()
但通常认为重新定义继承的非虚函数是不好的做法所以我建议你也使 update
虚拟
class Object {
public:
virtual void update(){ /* ... */ }
};
class Cube : public Object {
public:
void update() override {
// ...
Object::update();
}
};