我有两个名为“Person”的类,另一个名为“Student”,我一直在追逐这个,我只是无法编译。我已经拥有从Link错误到我现在所拥有的一切。
Person.h
#include <iostream>
#include <string>
using namespace std;
class Person
{
public:
Person()
{
cout << "Person: no parameters\n";
}
Person(string a, string b, string c, string d, string e, string f)
{
cout << "Person:" << a << endl;
cout << "Person:" << b << endl;
cout << "Person:" << c << endl;
cout << "Person:" << d << endl;
cout << "Person:" << e << endl;
cout << "Person:" << f << endl;
}
~Person();
void Person::set_values (string a, string b, string c, string d, string e, string f)
{
name = a;
address = b;
city = c;
state = d;
zip = e;
phone_number = f;
}
protected:
string phone_number;
string name;
string address;
string city;
string state;
string zip;
};
Student.h
#include <iostream>
#include <string>
#ifndef Person
#define Person
#endif
using namespace std;
class Student: Person
{
private:
string grade;
string course;
string gpa;
public:
Student()
{
cout << "Person: no parameters\n";
}
Student(string g, string h, string i)
{
cout << "Person:" << g << endl;
cout << "Person:" << h << endl;
cout << "Person:" << i << endl;
}
~Student();
void setClass_values (string g, string h, string i)
{
grade=g;
course=h;
gpa=i;
}
};
friendly2.cpp
#include <iostream>
#include <string>
#include "Person.h"
#include "Student.h"
using namespace std;
int main(void)
{
Person person;
Student student;
person.set_values("Fred", "825 Rice Street", "St. Paul", "MN","55421", "651-488-8888");
student.setClass_values("A", "Truck Driving", "4.0");
system("pause");
return 0;
}
Error 12 error C2039: '{ctor}' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>' d:\visual studio 2010\projects\friendly\friendly\student.h 25 1 friendly
Error 14 error C2039: '{ctor}' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>' d:\visual studio 2010\projects\friendly\friendly\student.h 25 1 friendly
Error 16 error C2039: '{ctor}' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>' d:\visual studio 2010\projects\friendly\friendly\student.h 25 1 friendly
Error 37 error C2039: '{ctor}' : is not a member of 'Student' d:\visual studio 2010\projects\friendly\friendly\friendly2.cpp 15 1 friendly
Error 3 error C2039: '{dtor}' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>' d:\visual studio 2010\projects\friendly\friendly\student.h 20 1 friendly
Error 5 error C2039: '{dtor}' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>' d:\visual studio 2010\projects\friendly\friendly\student.h 20 1 friendly
Error 7 error C2039: '{dtor}' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>' d:\visual studio 2010\projects\friendly\friendly\student.h 20 1 friendly
Error 9 error C2039: '{dtor}' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>' d:\visual studio 2010\projects\friendly\friendly\student.h 25 1 friendly
Error 10 error C2039: '{dtor}' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>' d:\visual studio 2010\projects\friendly\friendly\student.h 25 1 friendly
Error 11 error C2039: '{dtor}' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>' d:\visual studio 2010\projects\friendly\friendly\student.h 25 1 friendly
Error 13 error C2039: '{dtor}' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>' d:\visual studio 2010\projects\friendly\friendly\student.h 25 1 friendly
Error 15 error C2039: '{dtor}' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>' d:\visual studio 2010\projects\friendly\friendly\student.h 25 1 friendly
Error 17 error C2039: '{dtor}' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>' d:\visual studio 2010\projects\friendly\friendly\student.h 25 1 friendly
Error 27 error C2039: '{dtor}' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>' d:\visual studio 2010\projects\friendly\friendly\student.h 35 1 friendly
Error 28 error C2039: '{dtor}' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>' d:\visual studio 2010\projects\friendly\friendly\student.h 35 1 friendly
Error 29 error C2039: '{dtor}' : is not a member of 'std::basic_string<_Elem,_Traits,_Ax>' d:\visual studio 2010\projects\friendly\friendly\student.h 35 1 friendly
Error 38 error C2039: '{dtor}' : is not a member of 'Student' d:\visual studio 2010\projects\friendly\friendly\friendly2.cpp 15 1 friendly
Error 39 error C2039: '{dtor}' : is not a member of 'Student' d:\visual studio 2010\projects\friendly\friendly\friendly2.cpp 15 1 friendly
Error 42 error C2039: 'setClass_values' : is not a member of 'Student' d:\visual studio 2010\projects\friendly\friendly\friendly2.cpp 17 1 friendly
Error 1 error C2059: syntax error : '{' d:\visual studio 2010\projects\friendly\friendly\student.h 12 1 friendly
Error 32 error C2065: 'course' : undeclared identifier d:\visual studio 2010\projects\friendly\friendly\student.h 37 1 friendly
Error 20 error C2065: 'endl' : undeclared identifier d:\visual studio 2010\projects\friendly\friendly\student.h 27 1 friendly
Error 23 error C2065: 'endl' : undeclared identifier d:\visual studio 2010\projects\friendly\friendly\student.h 28 1 friendly
Error 26 error C2065: 'endl' : undeclared identifier d:\visual studio 2010\projects\friendly\friendly\student.h 29 1 friendly
Error 19 error C2065: 'g' : undeclared identifier d:\visual studio 2010\projects\friendly\friendly\student.h 27 1 friendly
Error 31 error C2065: 'g' : undeclared identifier d:\visual studio 2010\projects\friendly\friendly\student.h 36 1 friendly
Error 34 error C2065: 'gpa' : undeclared identifier d:\visual studio 2010\projects\friendly\friendly\student.h 38 1 friendly
Error 30 error C2065: 'grade' : undeclared identifier d:\visual studio 2010\projects\friendly\friendly\student.h 36 1 friendly
Error 22 error C2065: 'h' : undeclared identifier d:\visual studio 2010\projects\friendly\friendly\student.h 28 1 friendly
Error 33 error C2065: 'h' : undeclared identifier d:\visual studio 2010\projects\friendly\friendly\student.h 37 1 friendly
Error 25 error C2065: 'i' : undeclared identifier d:\visual studio 2010\projects\friendly\friendly\student.h 29 1 friendly
Error 35 error C2065: 'i' : undeclared identifier d:\visual studio 2010\projects\friendly\friendly\student.h 38 1 friendly
Error 36 error C2065: 'person' : undeclared identifier d:\visual studio 2010\projects\friendly\friendly\friendly2.cpp 14 1 friendly
Error 40 error C2065: 'person' : undeclared identifier d:\visual studio 2010\projects\friendly\friendly\friendly2.cpp 16 1 friendly
Error 41 error C2228: left of '.set_values' must have class/struct/union d:\visual studio 2010\projects\friendly\friendly\friendly2.cpp 16 1 friendly
Error 8 error C2676: binary '<<' : 'std::ostream' does not define this operator or a conversion to a type acceptable to the predefined operator d:\visual studio 2010\projects\friendly\friendly\student.h 22 1 friendly
Error 18 error C2676: binary '<<' : 'std::ostream' does not define this operator or a conversion to a type acceptable to the predefined operator d:\visual studio 2010\projects\friendly\friendly\student.h 27 1 friendly
Error 21 error C2676: binary '<<' : 'std::ostream' does not define this operator or a conversion to a type acceptable to the predefined operator d:\visual studio 2010\projects\friendly\friendly\student.h 28 1 friendly
Error 24 error C2676: binary '<<' : 'std::ostream' does not define this operator or a conversion to a type acceptable to the predefined operator d:\visual studio 2010\projects\friendly\friendly\student.h 29 1 friendly
Error 43 error C3861: 'system': identifier not found d:\visual studio 2010\projects\friendly\friendly\friendly2.cpp 19 1 friendly
44 IntelliSense: expected a declaration d:\visual studio 2010\projects\friendly\friendly\person.h 10 3 friendly
46 IntelliSense: expected an identifier d:\visual studio 2010\projects\friendly\friendly\student.h 12 1 friendly
47 IntelliSense: identifier "person" is undefined d:\visual studio 2010\projects\friendly\friendly\friendly2.cpp 11 9 friendly
45 IntelliSense: the global scope has no "set_values" d:\visual studio 2010\projects\friendly\friendly\person.h 26 16 friendly
我已经尝试过在friendly2.cpp中使用这两个类,但我似乎一直在追逐它,请帮忙。
答案 0 :(得分:1)
您的代码可以使用以下更改:
person.h
#pragma once
#include <iostream>
#include <string>
using namespace std;
class Person
{
public:
Person()
{
cout << "Person: no parameters\n";
}
Person(string a, string b, string c, string d, string e, string f)
{
cout << "Person:" << a << endl;
cout << "Person:" << b << endl;
cout << "Person:" << c << endl;
cout << "Person:" << d << endl;
cout << "Person:" << e << endl;
cout << "Person:" << f << endl;
}
~Person()
{}
void Person::set_values (string a, string b, string c, string d, string e, string f)
{
name = a;
address = b;
city = c;
state = d;
zip = e;
phone_number = f;
}
protected:
string phone_number;
string name;
string address;
string city;
string state;
string zip;
};
student.h
#pragma once
#include <iostream>
#include <string>
#include "Person.h"
using namespace std;
class Student: Person
{
private:
string grade;
string course;
string gpa;
public:
Student()
{
cout << "Person: no parameters\n";
}
Student(string g, string h, string i)
{
cout << "Person:" << g << endl;
cout << "Person:" << h << endl;
cout << "Person:" << i << endl;
}
~Student()
{}
void setClass_values (string g, string h, string i)
{
grade=g;
course=h;
gpa=i;
}
};
您的问题是您在没有定义它们的情况下声明了Destructors。如果插入声明,编译器将不会自动生成。 我还在标题中添加了#pragma一次。如果你更喜欢传统的includeguards,你应该使用大写字母的文件名(例如#ifndef PERSON_H ... for Person.h)。对于较大的项目,我建议使用包含警戒inEVERY标题。