我收到错误:'in'尚未声明。在我的课堂上。 它位于构造函数行上,以显式。
开头class InputForm : public QWidget
{
Q_OBJECT
public:
explicit InputForm(int ibot, in itop, double dbot, double dtop);
void displayForm();
public slots:
void computeResult();
private:
void setupForm();
int m_BotI, m_TopI;
double m_BotD, m_TopD, m_Pay;
QLineEdit* m_StrEntry;
QLineEdit* m_IntEntry;
QLineEdit* m_DoubleEntry;
QLabel* m_Result;
QString m_Name;
static QRegExp s_NameFormat;
};
答案 0 :(得分:7)
InputForm(int ibot, int itop, double dbot, double dtop);
/* ^ */
错字。 int itop
,而不是in itop
。 (您是否真的阅读过错误消息并亲自尝试过?)
请注意,如果您复制了该行,则可能需要更改实现文件中的类型。另请注意,explicit
不是必需的,因为此构造函数无论如何都不能用于任何隐式转换。
答案 1 :(得分:2)
'in'尚未宣布
explicit InputForm(int ibot, in itop, double dbot, double dtop);
// ^^^
编译器不知道in
的含义,因为它不是关键字,也不是任何用户定义的符号(如果你还没有这样做)。如果您同意这是int
,
explicit InputForm(int ibot, int itop, double dbot, double dtop);
// ^^^
或者您可以为in
定义类型,例如:
struct in
{
};
答案 2 :(得分:2)
更改: -
explicit InputForm(int ibot, in itop, double dbot, double dtop);
到
explicit InputForm(int ibot, int itop, double dbot, double dtop);