【发布时间】:2019-09-22 07:37:27
【问题描述】:
我将尝试创建一个结构来执行派生类中的覆盖方法。 我的基本代码结构:
Base.h已编辑
class Base
{
protected:
virtual void Initialize() = 0;
virtual void Update() = 0;
public:
void Init();
void Upd();
};
Base.cpp
#include "Base.h"
void Base::Initialize() {}
void Base::Update() {}
void Base::Init() {
// Some logic
Initialize();
}
void Base::Upd() {
// Some logic
Update();
}
下面的类是要从其他实现Initialize()和Update()的N个类继承的类:
行为.h
#include <iostream>
#include "Base.h"
class Behaviour : public Base
{
protected:
virtual void Initialize();
virtual void Update();
};
行为.cpp
#include "Behaviour.h"
void Bheaviour::Initialize() {
std::cout << "Initialize called!" << std::endl;
}
void Bheaviour::Update() {
std::cout << "Update called!" << std::endl;
}
然后我想在Base类中执行时执行Behavior Initialize()和Update()。我的主要功能是:
Core.cpp已编辑
#include "Behaviour.h"
int main() {
Base* base = new Behaviour();
base->Init();
while(!quit) {
base->Upd();
}
}
提前感谢您的任何建议!
感谢所有建议,我已经解决了!
【问题讨论】:
-
您需要一个适当类型的对象。在您最喜欢的 C++ 书籍中阅读有关虚函数的信息。
标签: c++ overriding abstract-class