繁体   English   中英

C ++:没有匹配的函数可调用''

[英]C++: No matching function for call to ''

我在编译器中遇到错误,但是我不确定为什么会给我它。 我尝试了很多事情,但我不知道是什么引起了问题。 将progressBar加载到energyBar中似乎存在问题。 当加载progressBar以外的其他参数时,它会编译而不会出错。

这是代码:

MaindWindow2.cpp

 #include EnergyBar.h
    ...//Other code
  void MainWindow2::drawEnergyBar()
{
    ui->setupUi(this);
    progressBar = new QProgressBar(ui->statusBar);
    progressBar->setAlignment(Qt::AlignRight);
    progressBar->setMaximumSize(180, 19);
    ui->statusBar->addWidget(progressBar);
    progressBar->setValue(100); //Max is 100%.
    energyBar = new EnergyBar(progressBar);

}

能量棒

#include "energybar.h"    


    EnergyBar::EnergyBar(QProgressBar progressBar){     

    }
//Some methods

能量棒

#include "energybar.h"
#include "view.h"
#include "model.h"



EnergyBar::EnergyBar(QProgressBar progressBar){    

}
void EnergyBar::calculateTileEnergy()
{

}

我在EnergyBar的构造函数中还有一些其他参数,但由于它们不会引起问题,所以将它们省略了。 如果省略了“ progressBar”,则创建新对象energyBar没问题。 但是添加它会导致错误:

/home/jb/Documents/nodePtr/mainwindow2.cpp:66: error: no matching function for call to 'EnergyBar::EnergyBar(QProgressBar*&)'
     energyBar = new EnergyBar(progressBar);
                                          ^
progressBar = new QProgressBar(ui->statusBar);

表示您正在使用QProgressBar的指针

EnergyBar::EnergyBar(QProgressBar progressBar)

表示您不希望指针。 采用

EnergyBar::EnergyBar(QProgressBar * progressBar)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM