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);
}
Energybar.cpp
#include "energybar.h"
EnergyBar::EnergyBar(QProgressBar progressBar){
}
//Some methods
Energybar.h
#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)
我在编译器中遇到错误,但我不确定它为什么会给我这个错误。我尝试了很多东西,但我无法弄清楚是什么导致了问题。 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);
}
Energybar.cpp
#include "energybar.h"
EnergyBar::EnergyBar(QProgressBar progressBar){
}
//Some methods
Energybar.h
#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)