我目前有一個抽象用戶類和一個繼承自用戶的學生類。我試圖從main初始化Student類的一個實例。我收到此錯誤體系結構x86_64的未定義符號 - 編譯繼承類
爲i386硬件架構未定義的符號: 「學生::學生()」,從引用: _main在ccJo7npg.o 「學生::〜學生()」,從引用: _main中ccJo7npg.o LD:符號(多個)未找到i386硬件架構 collect2:LD返回1個退出狀態
用戶類別:
#include <iostream>
#import <stdio.h>
#import <string.h>
using namespace std;
class User
{
public:
void setName(const string n)
{
name = n;
}
string getName()
{
return name;
}
void setUsername(const string u)
{
username = u;
}
string getUsername()
{
return username;
}
void setPassword(const string p)
{
password = p;
}
string getPassword()
{
return password;
}
void setID(const int ID)
{
this->ID=ID;
}
int getID()
{
return ID;
}
void setClassID(const int cid)
{
classID=cid;
}
int getClassID()
{
return classID;
}
void logOut()
{
cout<<"you have logged out"<<endl;
}
void print()
{
cout<< "Student : "<< ID << name << " "<< username << " " << password << endl;
}
virtual void menu()=0;
protected:
int classID, ID;
string name, username, password;
};
學生類別:
#include <iostream>
#include "User.h"
using namespace std;
class Student: public User
{
public:
Student()
{
classID=0;
ID=0;
username="";
name="";
password="";
}
~Student()
{
cout<<"destructor"<<endl;
}
void studyDeck(const int i)
{
}
void viewScores(const int)
{
}
void viewScores()
{
}
virtual void menu()
{
cout << "Student menu" << endl;
}
};
Main.cpp的:
#include <iostream>
#include "User.h"
#include "Student.h"
using namespace std;
int main()
{
Student s;
return 0;
}
我與G ++通過 「g ++ User.cpp Student.cpp的main.cpp」
感謝編譯!
你的'User.cpp'和'Student.cpp'文件是什麼?它看起來像所有的定義都在你的頭文件中。學生和用戶是否有空的cpp文件? – dasblinkenlight 2012-07-15 00:45:55
這些是User.cpp和Student.cpp文件。我有一些功能我還沒寫。 – 2012-07-15 02:50:12
嘗試給類用戶一個構造函數。 – johnathon 2012-07-15 03:13:56