過載(Overload) 相同類別中定義名稱相同但是參數個數不同或參數型態不同的物件類別,如下表示 class student{ ........ public int count(int data){....} public double count(double data){.....} } 覆寫(Oerride) 不同類別中,定義相同名稱的操作,依操作之參數個數或資料型態決定呼叫哪個操作 class studnet{ ....... public int count(int data){...} }
class foreign_student extend student{ ... public int count(int data){...} } 傳值呼叫 將值複製給對方,但是原本的值不變,如下 int main() { int a=1; int b=2; int swap(a,b); }
void swap(c,d) { int temp; temp=c; c=d; d=temp; }
結果會發現c,d的值有改變 但是由於沒有回傳值所以a,b值不變
傳值呼叫:將原本變數的位址傳給副程式的變數去儲存,因此副程式的變數改變數值即改變原本變數的值 int main{ int a=6; int b=7; swap(&a,&b); } void swap(int c*,int d*) { int temp; temp=c*; c*=d*; d*=temp} 由上可知 c與d的值改變影響了a和b的值 所以ab的值皆會改變
傳參考呼叫:是傳址呼叫的強化版只有在c++中才有,將變數的位址與內容值整個讓副程式去參考,因此 副程式改變值時,原本的變數也跟著改變 int main(){ int a=1; int b=2; swap(a,b); } void swap(&c,&d) {int temp; temp=c; c=d; d=temp;}