程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 面面俱到 ----重載(再轉)

面面俱到 ----重載(再轉)

編輯:關於JSP

面面俱到
                          ----重載
作者:HolyFire
面面俱到說的是一件事考慮到了很多方面。有的時候我們的一句話適用於很多方面,而這些方面有些類似。比方說加法,加法可以用於,整數和有理數。在C++裡可以用兩個函數來實現這個目的。
int intadd( int v1 , int v2 )
{
    return  v1+v2;
}
float floatadd( float v1 , float v2 )
{
    return  v1+v2;
}
使用的方式是這樣的
int ia = 1 , ib = 2 , iab = 0;
float fa = 1.0 , fb = 2.0 , fab = 0.0;
iab = intadd( ia ,ib );
fab = floatadd( fa , fb );
這樣看起來很不直觀,可讀性不強,我們的目的是讓人一眼就可以看出是在做相加運算。
聰明的讀者可能發現,兩個函數的返回值和參數並不一樣,這樣就可以區別開兩個不同的行為。這個特性可不可以利用呢,答案是可以,C++貼心的為我們做好了一切。原理很簡單,將函數的返回值和參數用一種可逆的編碼方法變成一個字符串,安插在函數名後面,編譯器向用戶屏蔽這一切,用戶可以用同一個名字來使用不同的函數。
就是這樣
int add( int v1 , int v2 )
{
    return  v1+v2;
}
float add( float v1 , float v2 )
{
    return  v1+v2;
}
int ia = 1 , ib = 2 , iab = 0;
float fa = 1.0 , fb = 2.0 , fab = 0.0;
iab = add( ia ,ib );
fab = add( fa , fb );
哦~~~~,編譯通過了,結果也運行無誤。
這樣的代碼看上去要比原來的好讀多了,我們可以略過我們不感興趣的那些東西。
重載的另一個方面是可以重載運算符,不同的是,它需要使用一個關鍵字operator。這樣就可以用自己的方式來使用運算符了。那麼立刻用運算符來改寫上面的一切吧
int operator + ( int v1 , int v2 )
{
    return  v1+v2;
}
float operator + ( float v1 , float v2 )
{
    return  v1+v2;
}
int ia = 1 , ib = 2 , iab = 0;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved