我从“Primer C ++”一书中学习C ++。 与我以前在Java中所做的不同,我了解到这是定义类和类的好方法。方法'头文件中的原型。 所以我按照本书的步骤,在.cpp文件中实现方法和构造函数。
结果是无数错误报告。
Student.h
#ifndef STUDENT_H_
#define STUDENT_H_
class Student{
private:
string firstname;
string lastname;
double gpa;
public:
Student();
Student(string fname,string lname, double aGpa);
~Student();
void Show();
double getGpa();
};
#endif
在编译时返回以下错误:
我还试图包含cstring和字符串库(编译器都找不到它们,我想因为它只是一个.cpp文件可以访问的东西)以使用库结束,但这并没有改变一件事。
Student.cpp
#include <iostream>
#include <cstring>
#include "student.h"
using std::cout;
using std::cin;
using std::endl;
Student::Student(){
cout << "Default constructor called\n";
cout << "No info regarding the student. Object not initialized";
}
Student::Student(string fname,string lname, double aGpa){
this->firstname=fname;
this->lastname=lname;
this->gpa=aGpa;
}
void Student::Show(){
cout << lastname <<", " << firstname <<"\nGPA: " << gpa << endl;
}
double Student::getGpa(){
return this->gpa;
}
Student::~Student(){
cout<< "Object student has been destroyed";
}
在编译时返回以下错误
答案 0 :(得分:1)
我不知道您的编译器错误,但您的头文件缺少使用std::string
的内容:
#include <string>
using std::string;
您确定使用的是c ++编译器而不是c编译器吗?