我正在创建一些类,并决定创建一个基本类,其他类将仅继承该基本类

所以这是我的基础课头

#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传递给状态构造函数呢?

最佳答案

您的基类没有默认构造函数,这是在当前派生类构造函数中隐式调用的内容。您需要显式调用基础的构造函数:

IntroState::IntroState(ImageService& imageService) : State(imageService)
{

}

关于c++ - C++继承类不显示默认构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23816460/

10-09 19:56