[軟體] 寫c++跑出 ISO C++ fordbids declaration with no type
寫基本的串列插入資料 用教科書的程式碼輸入 最後出現錯誤訊息:
ISO C++ forbids declaration of 'link' with no type
想請大家解惑一下 找了一些資料還是看不懂...
板上有人用WINODOWS跑得出來 但我用Xcode就會跑出這樣的錯誤訊習..
謝謝~!
#include <iostream> // 請參閱9.4節說明
using namespace std; // 請參閱9.4節說明
class Student // 自定Student資料類別
{
int student_id;
char student_name[40];
public:
friend istream& operator >> (istream& in, Student& obj)
{
in >> obj.student_id >> obj.student_name;
return in;
}
friend ostream& operator << (ostream& out, Student& obj)
{
out << obj.student_id << '\t' << obj.student_name;
return out;
}
};
struct link //定義link資料結構
{
Student data; //Student型態資料
link *next; //link型態指標
};
class linklist //定義串列資料類別
{
link *firstPtr; //串列起始指標
link *lastPtr; //串列結束指標
public:
linklist() { firstPtr = lastPtr = NULL; } //建立者
void addFront (Student obj); //宣告插入第一項原型
void addBack (Student obj); //宣告插入最後項原型
void delFront(); //宣告刪除第一項原型
void delBack(); //宣告刪除最後項原型
void showItem(); //宣告顯示串列原型
};
void linklist::addFront (Student obj) //定義插入第一項函數
{
link *newPtr = new link;
newPtr->data = obj;
if (firstPtr == NULL) {
firstPtr = lastPtr = newPtr;
lastPtr->next = NULL;
}
else {
newPtr->next = firstPtr;
firstPtr = newPtr;
}
}
void linklist::addBack (Student obj) //定義插入最後項函數
{
link *newPtr = new link;
newPtr->data = obj;
if (firstPtr == NULL) {
firstPtr = lastPtr = newPtr;
lastPtr->next = NULL;
}
else {
lastPtr->next = newPtr;
lastPtr = newPtr;
lastPtr->next = NULL;
}
}
void linklist::delFront() //定義刪除第一項函數
{
link *tempPtr = firstPtr;
if (firstPtr == NULL)
return;
else {
firstPtr = firstPtr->next;
delete tempPtr;
}
}
void linklist::delBack() //定義刪除最後項函數
{
link *tempPtr = lastPtr;
if (firstPtr == NULL)
return;
else {
if (firstPtr == lastPtr)
firstPtr = lastPtr = NULL;
else {
link *currentPtr = firstPtr;
while(currentPtr->next != lastPtr)
currentPtr = currentPtr->next;
lastPtr = currentPtr;
lastPtr->next = NULL;
}
}
delete tempPtr;
}
void linklist::showItem() //定義顯示串列資料函數
{
link *currentPtr = firstPtr;
while( currentPtr != NULL)
{
cout << currentPtr->data << endl;
currentPtr = currentPtr->next;
}
}
int main()
{
Student studata; //定義Student物件
linklist ls; //定義linklist物件
char n;
cout << "1.插入第一項\n2.插入最後項\n"
<< "3.刪除第一項\n4.刪除最後項\n"
<< "0.結束\n";
while(1)
{
cout << "請選擇(1-4 或 0): ";
cin >> n;
switch (n)
{
case '1':
cout << "請輸入學號與姓名:" ;
cin >> studata;
ls.addFront(studata);
ls.showItem();
break;
case '2':
cout << "請輸入學號與姓名:" ;
cin >> studata;
ls.addBack(studata);
ls.showItem();
break;
case '3':
ls.delFront();
ls.showItem();
break;
case '4':
ls.delBack();
ls.showItem();
break;
case '0':
return 0;
}
cout << endl;
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 68.70.61.100
推
08/24 11:22, , 1F
08/24 11:22, 1F
推
08/24 13:05, , 2F
08/24 13:05, 2F
→
08/24 13:05, , 3F
08/24 13:05, 3F
→
08/24 13:06, , 4F
08/24 13:06, 4F
→
08/24 13:08, , 5F
08/24 13:08, 5F
→
08/24 14:00, , 6F
08/24 14:00, 6F
→
08/24 14:02, , 7F
08/24 14:02, 7F
→
08/24 14:02, , 8F
08/24 14:02, 8F
→
08/24 14:02, , 9F
08/24 14:02, 9F
→
08/24 20:07, , 10F
08/24 20:07, 10F
推
08/24 20:48, , 11F
08/24 20:48, 11F
→
08/24 20:49, , 12F
08/24 20:49, 12F
MAC 近期熱門文章
PTT數位生活區 即時熱門文章