寫c++跑出 ISO C++ fordbids declaration with no type - MAC

By Hedda
at 2011-08-24T10:18
at 2011-08-24T10:18
Table of Contents
寫基本的串列插入資料 用教科書的程式碼輸入 最後出現錯誤訊息:
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;
}
}
--
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;
}
}
--
Tags:
MAC
All Comments

By Robert
at 2011-08-29T09:19
at 2011-08-29T09:19

By Aaliyah
at 2011-09-02T02:24
at 2011-09-02T02:24

By Steve
at 2011-09-04T04:40
at 2011-09-04T04:40

By Enid
at 2011-09-06T08:38
at 2011-09-06T08:38

By Iris
at 2011-09-09T22:49
at 2011-09-09T22:49

By Doris
at 2011-09-11T08:56
at 2011-09-11T08:56

By Kristin
at 2011-09-14T20:21
at 2011-09-14T20:21

By Andrew
at 2011-09-16T23:41
at 2011-09-16T23:41

By Adele
at 2011-09-21T08:47
at 2011-09-21T08:47
Related Posts
Fluid App幫你把網頁變成App

By Agatha
at 2011-08-24T09:57
at 2011-08-24T09:57
Time machine 備份時間點?以及是否釋出容量?

By Emily
at 2011-08-24T03:48
at 2011-08-24T03:48
2010" MBP 硬碟升級選擇

By Susan
at 2011-08-24T01:26
at 2011-08-24T01:26
Lion下用拖拉的方式開啟檔案無效

By Catherine
at 2011-08-24T00:30
at 2011-08-24T00:30
在圖形介面資料夾下 command line

By Freda
at 2011-08-23T23:21
at 2011-08-23T23:21