D:\Qt\Qt5.2.1\Tools\QtCreator\bin\day5\main.cpp:53: error: no matching function for call to 'Student::Student()' Collage(string j,double s):major(j),score(s){} ^
时间: 2024-03-03 18:49:35 浏览: 63
这个错误是因为你在创建一个类的对象时,编译器默认会调用该类的默认构造函数,但是你的类中没有默认构造函数,而你又没有在创建对象时提供构造函数所需的参数。解决这个问题的方法是,在类中添加一个默认构造函数,或者在创建对象时提供构造函数所需的参数。如果你不需要默认构造函数,那么可以显式删除它,如下所示:
```
class Student {
public:
Student() = delete; // 显式删除默认构造函数
Student(string n, int a):name(n),age(a){}
Collage(string j,double s):major(j),score(s){}
private:
string name;
int age;
string major;
double score;
};
```
相关问题
D:\Qt\Qt5.2.1\Tools\QtCreator\bin\day5\main.cpp:139: error: ISO C++ forbids declaration of 'Student' with no type [-fpermissive] Student(string n,int m):mentor_name(n),wages(m){} ^
这个错误的含义是:在main.cpp文件的第139行,声明了一个名为Student的变量或函数,但是没有指定其类型。这可能是因为在使用Student之前没有正确地包含它的头文件或类定义。解决方法是确保在使用Student之前正确地包含它的头文件或类定义,并且在类定义中指定Student的类型。另外,编译器可能会提示你添加“-fpermissive”标志来允许这种类型的声明,但这并不是推荐的解决方法,因为它可能会导致其他问题。
D:\Qt\Qt5.2.1\Tools\QtCreator\bin\day6-1\dialog.cpp:25: error: no 'void Dialog::KeyPressEvent(QKeyEvent*)' member function declared in class 'Dialog' void Dialog::KeyPressEvent(QKeyEvent* event) ^
这是一个编译错误,提示在 `Dialog` 类中没有声明名为 `KeyPressEvent` 的成员函数。正确的函数名应该是 `keyPressEvent`,注意大小写。
正确的 `keyPressEvent` 函数声明应该像这样:
```cpp
void Dialog::keyPressEvent(QKeyEvent *event)
{
// 处理按键事件的代码
}
```
请检查你的代码是否有类似的拼写错误。
阅读全文