严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C2084 函数“Student::Student(__int64,std::string,std::string,std::string,std::string)”已有主体 Lab14_2 D:\C语言资料包\Lab14_2\Lab14_2\Lab14_2.cpp 19
时间: 2023-12-13 08:22:46 浏览: 178
这个错误提示是因为您在定义 `Student` 类的构造函数时,已经有了函数的实现,但是在定义的时候不需要写函数实现,只需要声明函数即可。
您可以将 `Student` 类的构造函数的定义改为声明,具体方式如下:
在 `.h` 文件中添加构造函数声明:
```c++
class Student {
public:
Student(__int64 id, std::string name, std::string gender, std::string major, std::string phone);
// 其他成员函数的声明
private:
__int64 id;
std::string name;
std::string gender;
std::string major;
std::string phone;
};
```
在 `.cpp` 文件中实现构造函数:
```c++
#include "Student.h"
Student::Student(__int64 id, std::string name, std::string gender, std::string major, std::string phone)
:id(id), name(name), gender(gender), major(major), phone(phone) {}
// 其他成员函数的实现
```
这样修改之后即可解决该错误。
相关问题
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 "public: __cdecl student::student(void)" (??0student@@QEAA@XZ),函数 "public: __cdecl Node<class student>::Node<class student>(class student)" (??0?$Node@Vstudent@@@@QEAA@Vstudent@@@Z) 中引用了该符号 Project2 E:\程序代码\Project2\Project2\试验.obj 1
这个错误是因为链接器无法找到类中某些成员函数的定义。具体来说,这个错误是因为在使用 `Node` 类时,调用了 `student` 类的默认构造函数,但是编译器找不到 `student` 类的默认构造函数的定义。
解决这个问题的方法是要确保 `student` 类的默认构造函数被正确实现和链接。你可以检查一下 `student` 类的定义和实现是否匹配,或者确认是否正确链接了 `student` 类的实现文件。
另外,你也可以在 `student` 类中显式地声明一个默认构造函数,例如:
```c++
class student {
public:
student(); // 显式声明默认构造函数
// ...
};
student::student() {
// 实现默认构造函数
}
```
这样做可以确保默认构造函数被正确实现和链接。希望这个回答能够帮助你解决问题。
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C2065 “aa”: 未声明的标识符 Project3 D:\代码\Project3\Project3\FileName.c 13
根据你提供的错误信息,我们可以看到错误代码C2065,它指示了标识符 "aa" 未声明。问题出现在文件 "FileName.c" 的第13行。
这个错误可能是由于在使用结构体变量 "aa" 之前,没有正确地声明结构体类型 "Student"。为了解决这个问题,我们需要在使用变量 "aa" 之前提前声明结构体类型。
以下是修改后的代码示例:
```c
#include <stdio.h>
struct Student {
int ID;
char name[10];
float score;
};
int main() {
struct Student aa = {1, "张三", 60.1f};
return 0;
}
```
现在,我们在 main 函数之前提前声明了结构体类型 "Student",这样就解决了变量 "aa" 未声明的问题。请确保在使用结构体类型之前进行正确的声明。
阅读全文