【发布时间】:2019-08-20 10:58:06
【问题描述】:
尝试使用定义为具有和选项参数的方法时出现编译错误。错误信息是这样的:
错误:没有匹配的函数调用 'ConsoleWidget::logInfo(const char [32])'consoleWidget->logInfo("这是记录信息消息");
以下是我的文件。
(标题).h
#ifndef CONSOLEWIDGET_H
#define CONSOLEWIDGET_H
#include <QTextEdit>
#include <QAction>
#include <QColor>
class ConsoleWidget : public QTextEdit
{
Q_OBJECT
public:
explicit ConsoleWidget(QWidget *parent = nullptr);
public slots:
void logInfo(const QString& text, const bool includeTimestamp /*=false*/);
};
#endif // CONSOLEWIDGET_H
cpp (.cpp)
void ConsoleWidget::logInfo(const QString &text, bool includeTimestamp = false)
{
...
}
(主).cpp
auto *consoleWidget = new ConsoleWidget(this);
consoleWidget->logInfo("This is logging a message!");
【问题讨论】:
-
这是因为
main.cpp不知道.cpp文件中定义的默认参数值。尝试在标题中定义默认参数 -
默认参数值必须在头文件中声明。