c++ - C++中的编译错误(初级)

标签 c++ compiler-errors

<分区>

我是 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:\users\administrator\documents\visual studio 2010\Projects\LAB1\Debug\LAB1.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
   }

但这不是方法定义,

关于c++ - C++中的编译错误(初级),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26130444/

相关文章:

C 编译器无法在 SUA/Interix 上创建可执行文件

c++ - icc:包括 omp.h 需要 byteswap.h

c++ - fork 子进程和 C++ 对象

c++ - 正确打印字符数组地址的方法

c++ - 对重载的模糊调用 - 强制转换

objective-c - 为什么Xcode中突然出现大量编译器错误?

java - 消息传递如何帮助实现 OOP 中的修饰符?

c++ - 存储设置的最佳实践

c++ - 如何从 std::decimal 获取系数?

java - Netbeans 在 java.lang.NoClassDefFoundError 中报告 "Insufficient memory to compile"结果