簡體   English   中英

沒有用於調用構造函數類的匹配函數

[英]No matching function for call to constructor class

我正在嘗試為子類創建構造函數。 但我不斷收到此錯誤消息。 我試過在這里搜索,但我找到的答案都不適用於我的問題。 對不起,如果之前有人問過。

在構造函數 'EixoDinamico::EixoDinamico(double, double, Serie*, bool)' 中:
錯誤:沒有匹配的函數調用“Eixo::Eixo()”
注意:候選人是:注意:Eixo::Eixo(std::string, double, double)
注意:候選人需要 3 個參數,提供 0 個參數
注意:Eixo::Eixo(const Eixo&)
注意:候選人需要 1 個參數,0 提供

編輯:如果我重寫代碼以便子類現在自己是一個類,問題就會消失,但我需要它是一個子類。

以下是代碼:

Eixo.h

#ifndef EIXO_H
#define EIXO_H
#include <iostream>

using namespace std;

class Eixo
{
public:
    Eixo(string titulo, double minimo, double maximo);
    virtual ~Eixo();

private:
    string titulo;
    double minimo;
    double maximo;
};

#endif // EIXO_H'

eixo.cpp

#include "Eixo.h"
#include <iostream>

Eixo::Eixo(string titulo, double minimo, double maximo)
{
this->maximo = maximo;
this->minimo = minimo;
this->titulo = titulo;
}

Eixo::~Eixo()
{
    //dtor
}

EixoDinamico.h

#ifndef EIXODINAMICO_H
#define EIXODINAMICO_H
#include "Eixo.h"


class EixoDinamico : public Eixo
{
public:
    EixoDinamico(double minimoPadrao, double maximoPadrao, Serie* 
base, bool orientacaoHorizontal);
    virtual ~EixoDinamico();

private:

};

#endif // EIXODINAMICO_H

EixoDinamico.cpp

#include "EixoDinamico.h"
#include "Eixo.h"
EixoDinamico::EixoDinamico(double minimoPadrao, double maximoPadrao, Serie* 
base, bool orientacaoHorizontal):Eixo()
{
     if(base->getQuantidade()<2){
    inicioEixo = minimoPadrao;
    fimEixo = maximoPadrao;
}
    limiteInferior = base->getLimiteInferior();
    limiteSuperior = base->getLimiteSuperior();
    if (orientacaoHorizontal){
        inicioEixo = limiteInferior->getX();
        fimEixo = limiteSuperior->getX();
}
    else{
    inicioEixo = limiteInferior->getY();
    fimEixo = limiteSuperior->getY();
}
}

EixoDinamico::~EixoDinamico()
{
//dtor
}

EixoDinamico的構造函數中,您正在調用Eixo ( Eixo() ) 的默認構造函數,但這並不存在。 Eixo的自定義構造聲明禁用了默認構造函數的自動生成,並且您尚未明確聲明。 為此,請添加

Eixo() = default;

Eixo的聲明或自己實現。

還要確保調用默認構造函數確實是您想要的。 正如 underscore_d 指出的那樣,這沒有多大意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM