C++中的编译错误(初级)
Compilation Error in C++ (beginner level)
我是C++的新手,我不明白这段代码哪里错了。我接受这个错误:
ClCompile:
1> Student.cpp
1>Student.obj : error LNK2019: unresolved external symbol "public: void __thiscall Student::setExamGrade(int,int)" (?setExamGrade@Student@@QAEXHH@Z) referenced in function _main
1>c:usersadministratordocumentsvisual studio 2010ProjectsLAB1DebugLAB1.exe : fatal error LNK1120: 1 unresolved externals
1>
1>Build FAILED.
你能帮帮我吗?此处编码:
学生.h
#ifndef STUDENT_H
#define STUDENT_H
#include <string>
using namespace std;
class Student
{
private:
int ID;
string name;
int *exams;
public:
Student();
Student(int ID, string name);
void setExamGrade(int index, int grade);
int getOverallGrade();
void display();
};
#endif
学生.cpp
#include "Student.h"
#include <iostream>
using namespace std;
int total;
int count;
int average;
int exams[3];
void main() {
Student *s = new Student(123, "John");
s->setExamGrade(0, 80);
s->setExamGrade(1, 60);
s->setExamGrade(2, 95);
s->display();
delete s;
}
Student :: Student()
{
ID = 0;
name = "";
}
Student :: Student(int num, string text)
{
this->ID = num;
this->name = text;
}
void setExamGrade(int index, int grade)
{
exams[index] = grade;
total += exams[index];
count = index +1;
}
int getOverallGrade()
{
average = total/count;
return average;
}
void Student :: display()
{
cout << "ID:" << ID << "NAME:" << name << "GRADE:" << endl;
}
您声明方法:
void setExamGrade(int index, int grade);
类内Student
但你没有定义方法。您确实定义了一个具有相同名称的函数。
void setExamGrade(int index, int grade)
{ // STUFF
}
但这不是一个方法定义,
我想您错过了setExamGrade
和getOverallGrade
之前的Student ::
。
您已经像这样定义了
void setExamGrade(int index, int grade) { .. }
这只是一个函数本身,它不属于一个类。你想要
void Student::setExamGrade(int index, int grade) { .. }
"未解析的外部符号"表示链接器找不到有问题的代码体。
在这种情况下,找不到其正文的是Student::setExamGrade
方法。
您的代码似乎定义了一个函数setExamGrade
,但它没有被标记为Student::
方法(就像您成功地为Student::display
所做的那样)
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- C++初级读本计数错误
- C++中的编译错误(初级)
- 初级:L1解析表语法错误
- C++初级逻辑错误-返回0