我一直在爲我的物理學位課程的編程模塊做一些課程,但是我遇到了一些麻煩。我不得不做出一個名爲Person類和調用Employee的子類這樣的: Person.hpp:C++類繼承:函數
#ifndef PERSON_HPP_
#define PERSON_HPP_
class Person {
public:
Person(const std::string & name="Anonymous"): name(name) {;}
~Person() {;}
std::string getname(){
return name;
}
void setname(std::string newname) {
name = newname;
}
void Print();
private:
std::string name;
};
#endif /* PERSON_HPP_ */
Person.cpp:
void Person::Print(){
std::string name = Person::getname;
std::cout << name << std::endl;
}
Employee.hpp:
#ifndef EMPLOYEE_HPP_
#define EMPLOYEE_HPP_
class Employee: public Person {
public:
Employee(const std::string & name, const std::string & job) : name(name), job(job){;}
~Employee() {;}
std::string getjob(){
return job;
}
void setjob(std::string newjob) {
job = newjob;
}
void Print() const;
private:
std::string job;
};
#endif /* EMPLOYEE_HPP_ */
Employee.cpp:
void Employee::Print(){
Person::Print();
std::string job = Employee::getjob;
std::cout << job << std::endl;
}
main.cpp中:
#include <iostream>
#include <string>
#include <vector>
#include "Person.hpp"
#include "Person.cpp"
#include "Employee.hpp"
#include "Employee.cpp"
#include "Friend.hpp"
#include "Friend.cpp"
int main() {
return 0;
}
的錯誤是在我的employee.cpp。當建立這個錯誤顯示: ../Employee.cpp:10:6:錯誤:使用未聲明的標識符'員工'
我意識到我可能犯了一個非常基本的錯誤,但令我感到沮喪的是,我看不到。
任何幫助將是偉大的! 在此先感謝, 肖恩庫珀
N.B. employee.cpp的目的是打印員工的名字及其相關的工作。
'#include「Employee.cpp」' - 這裏是事情開始出錯的地方。爲了理智,你必須將接口與實現分開(decl/defn)。 –
你的cpp文件應該包含他們需要包含的頭文件。另外,你不需要這個 - >'std :: string job = Employee :: getjob;',你聲明一個隱藏'job'成員的本地,只需使用'job',它就可以工作。 – crashmstr