#include <iostream>
using namespace std;
class List
{
public:
int num;
class List *next;
void create();
};
typedef class List Node; // 這個不加class 應該也可以吧?
typedef Node *Link; //這句是什麼意思?Link前面的星號代表什麼?
Link top,p,s;
void List::choose() //List::choose()是什麼意思?
{
......
}
初學C++, 這個代碼看不懂,希望有老師解釋一下上面三個問題,謝謝
1:可以不用加class
2:typedef 的用法如下:
typedef A B
在程序出現B的地方,都會用A來替代,也就是給A取一個別名B,建議使用typedef而不是#define來取別名。
3:首先這是一個函數,List表示的一個“域”, :: 是一個操作符,叫做域操作符,後面的choose() 是函數名以及函數的參數列表(此處參數列表為空)
整體的意思就是說這個函數是屬於類list的。
其實你一直在跟域操作符打交道。你試試在程序裡去掉 using namespace std; 然後執行下列語句 cout<<"hello"<<endl;
編譯器會報錯,因為他找不到cout在哪裡,執行下列語句就能通過: std::cout<<"hello"<<std::endl;
沒錯,cout和endl所在的域就是std