C++ note 1

看板NTUEE_Lab554作者 (我會更好)時間18年前 (2007/12/09 13:43), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
就常問的問題或是我常搞錯的地方來說 1 cin cout 箭頭常常搞錯? 簡單講箭頭指向你要放東西的地方 例如: cout<<"test"<<endl; //把"test"推到output出去 cin>>input; //把使用者輸入值存入input的變數 2 function overload 多重定義 即一個函數有多種輸入參數的方法,以例子說明 int line(point a,point b); int line(point a,vector b) 這個例子是說明一條線可以有幾種方法表示 第一種是輸入兩個點 第二種是輸入一個點後,再輸入一個向量(該vector不為基本資料結構的那個vector 只是為了方便表示) 3 default arguments 預設引數初值 int permutation(int x,int y=1) { int fra=1; for(int i=1;i<=x;i++) fra*=i; if(y!=1) { int fra2; for(int j;j<=y;j++) fra2*=j; return fra/fra2; } return fra; } permutation(5)=120; permutation(5,3)=20; argument的參數數目不一樣...第一個例子有用到預設值y=1,第二個沒有 ps:有預設初值的引數要放在右邊 5 static class Employee { static int temp; } 此靜態資料成員為各物件(同類別)的公用資料,而non-static資料為個體之私有資料 6 inline function inline函數跟C的Macro很像,目的是為了增進程式效率 不過在傳統C上面,Marco無法檢查引數的型態,也無法指定回傳的型態,使用inline可 避免這種情況 Macro: #define MAX(x,y) (x>y)?(x):(y) inline: inline int compare(int x,int y){return x>y?x:y;} 在C++中,較短的function常宣告成inline(3行以下建議) 7 const const變數在宣告時即須給定常數值,const class也是一樣,宣告就得給初始值 (1) 例: const int x=5; const int *p; p=&x; const int *p指的是有個指標指向const int,該指標不為constant, 但是指向的東西為constant (2)常數的指標也能指向一般變數(但一般指標不能指向常數) 例: int x=10; const int *p; p=&x; 這個例子,x為普通變數,可以任意的儲存新值,但是p為常數指標,不可經由*p把新值 存入x. 利用這個,可以達到"主函數把x主位址傳給副函數時,擔心x值受到對方傷害,就該用 常數指標" (3)常數位址 例 int* const p; 這個表示了,p為常數位址,*p為一般的整數,即*p可以改變,但是p(位址)不可以改變 8. friend 朋友:自己的東西,跟好朋友分享 分兩種friend function和friend class (1) friend function class A { public: A(int r=0){x=r;} friend int f(const A &a); //A認為f為他的好朋友 private: int x; } int f(const A &a) {return a.x*a.x;} A覺得f是他的朋友,可以自由的使用它的資料x (2) friend class差不多,也用個簡單例子說明 class WATCH { int hour,minute; public: void set(int h,int m){hour=h;minute=m;} friend class CLOCK; //WATCH認為CLOCK為他的好朋友 } class CLOCK { int hour,mimute; public: set_with_watch(WATCH w) {hour=w.hour;minute=w.minute;} //自由的使用WATCH的資料 } -- 1. Inheritance 繼承 2. Virtual function 是什麼 3. Pure virtual function 是什麼 4. Template 是什麼 5. 多重繼承有什麼影響 6. Friend class 是什麼 7. Abstract class 是什麼 8. New, Operation new 與 Placement new 是什麼 9. Thread 是什麼 10. Critical section 是什麼 11. polymorphism 是啥 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.21.108 ※ 編輯: maxmilian 來自: 140.112.21.108 (12/10 13:34)
文章代碼(AID): #17Mu1gdG (NTUEE_Lab554)