在C ++中获取错误消息

时间:2014-02-17 23:26:34

标签: c++ constructor overloading

我是C ++的新手(我是C程序员),所以如果这看起来像个愚蠢的问题我会道歉。

当我运行此程序时,我收到以下错误消息:

错误C2661:'Student :: Student':没有重载函数需要2个参数

我评论了错误发生的位置(2个实例)。谢谢。

//Definition.cpp

#include "Student.h"

Student::Student(string initName, double initGPA) //error here and in main.cpp
{
        name = initName;
        GPA = initGPA;
}

string Student::getName()
{
        return name;
}

double Student::getGPA()
{
        return GPA;
}

void Student::printInfo()
{
        cout << name << " is a student with GPA: " << GPA << endl;
}

//student.h

#include <string>
#include <iostream>

using namespace std;

class Student
{
        private:
                string name;
                double GPA;
        public:
                string getName();
                double getGPA();
                void setGPA(double GPA);
                void printInfo();
};


//main.cpp 

#include <iostream>
#include "Student.h"

int main() {
        Student s("Lemuel", 3.2); //here is the error

        cout << s.getName() << endl;
        cout << s.getGPA() << endl;

        cout << "Changing gpa..." << endl;
        s.setGPA(3.6);

        s.printInfo();
        return 0;
}

1 个答案:

答案 0 :(得分:5)

未声明构造函数。

试试这个:

class Student
{
        private:
                string name;
                double GPA;
        public:
                Student(string initName, double initGPA);
                string getName();
                double getGPA();
                void setGPA(double GPA);
                void printInfo();
};