我正在创建一些类,我决定创建一个基本类,其他类将继承该基本类
所以这是我的基本类标题
#pragma once
#include "ImageService.h"
class State
{
public:
State( ImageService& is );
~State();
void Update();
};
不要担心这些方法,它们不是问题所在。
所以现在我继续创建一个类似的IntroState(头文件)
#pragma once
#include "State.h"
class IntroState : public State
{
public:
IntroState(ImageService& imageService);
~IntroState();
GameState objectState;
};
这里是cpp文件
#include "IntroState.h"
IntroState::IntroState(ImageService& imageService)
{
//error here
}
IntroState::~IntroState()
{
}
在构造函数中它表示"没有类" State""的默认构造函数,现在我认为正在进行的是,State的默认构造函数需要传递一个imageService引用它。那么我如何将此构造函数中的imageservice传递给状态构造函数?
答案 0 :(得分:7)
您的基类没有默认构造函数,这是在当前派生类构造函数中隐式调用的。您需要显式调用base的构造函数:
IntroState::IntroState(ImageService& imageService) : State(imageService)
{
}
答案 1 :(得分:3)
通常的方式:
IntroState::IntroState(ImageService& imageService)
: State(imageService)
{
}
答案 2 :(得分:1)