在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C++/ 重載
類的訪問(wèn)修飾符
D語(yǔ)言運(yùn)算符
D語(yǔ)言邏輯運(yùn)算符
類指針
D語(yǔ)言元組
D語(yǔ)言指針
D語(yǔ)言模塊
D語(yǔ)言sizeof運(yùn)算符
D語(yǔ)言混合類型
D語(yǔ)言封裝
D語(yǔ)言條件編譯
類的靜態(tài)成員
D語(yǔ)言do...while循環(huán)
D語(yǔ)言結(jié)構(gòu)體
重載
D語(yǔ)言字符串-String
D語(yǔ)言決策語(yǔ)句
D語(yǔ)言接口
D語(yǔ)言for循環(huán)
D語(yǔ)言switch語(yǔ)句
D語(yǔ)言關(guān)聯(lián)數(shù)組
D語(yǔ)言范圍
D語(yǔ)言枚舉Enums
契約式編程
D語(yǔ)言并發(fā)
D語(yǔ)言開發(fā)環(huán)境設(shè)置
D語(yǔ)言別名
D語(yǔ)言常值
D語(yǔ)言常量
D語(yǔ)言函數(shù)
D語(yǔ)言if嵌套語(yǔ)句
D語(yǔ)言循環(huán)
D語(yǔ)言概述,D語(yǔ)言是什么?
D語(yǔ)言運(yùn)算符優(yōu)先級(jí)
D語(yǔ)言continue語(yǔ)句
D語(yǔ)言異常處理
D語(yǔ)言break語(yǔ)句
D語(yǔ)言if...else語(yǔ)句
D語(yǔ)言類和對(duì)象
類繼承
D語(yǔ)言字符
D語(yǔ)言教程
D語(yǔ)言關(guān)系運(yùn)算符
比較操作符重載
構(gòu)造函數(shù)和析構(gòu)函數(shù)
D語(yǔ)言抽象類
D語(yǔ)言if語(yǔ)句
D語(yǔ)言賦值運(yùn)算符
D中算術(shù)運(yùn)算符
D語(yǔ)言類成員函數(shù)
D語(yǔ)言位運(yùn)算符
D語(yǔ)言變量
D語(yǔ)言數(shù)據(jù)類型
D語(yǔ)言文件I/O
D語(yǔ)言數(shù)組
一元運(yùn)算符重載
D語(yǔ)言嵌套switch語(yǔ)句
D語(yǔ)言基本語(yǔ)法
二元運(yùn)算符重載
this指針
D語(yǔ)言聯(lián)合體
D語(yǔ)言模板
D語(yǔ)言嵌套循環(huán)
D語(yǔ)言while循環(huán)

重載

D編程允許為一個(gè)函數(shù)名或在相同的范圍內(nèi)操作,這就是所謂的函數(shù)重載和運(yùn)算符重載分別指定一個(gè)以上的定義。

重載聲明的是,已被聲明具有相同的名稱,在同一范圍內(nèi)先前聲明的聲明的聲明,除了這兩個(gè)聲明具有不同的參數(shù)和明顯不同的定義(實(shí)現(xiàn))。

當(dāng)調(diào)用一個(gè)重載函數(shù)或運(yùn)算符,編譯器確定最合適的定義,通過(guò)比較你用來(lái)調(diào)用函數(shù)或運(yùn)算符的定義中指定的參數(shù)類型的參數(shù)類型來(lái)使用。選擇最合適的重載函數(shù)或運(yùn)算符的過(guò)程被稱為重載解析。

函數(shù)重載

可以有相同的函數(shù)名多個(gè)定義在相同的范圍。該函數(shù)的定義必須由類型和/或參數(shù)在參數(shù)列表中的號(hào)碼彼此不同。不能重載函數(shù)聲明只相差返回類型。

以下是其中相同功能的print()被用于打印不同的數(shù)據(jù)類型的示例:

import std.stdio;
import std.string;
class printData
{
   public:
      void print(int i) {
         writeln("Printing int: ",i);
      }

      void print(double  f) {
        writeln("Printing float: ",f );
      }

      void print(string s) {
        writeln("Printing string: ",s);
      }
};

void main()
{
   printData pd = new printData();

   // Call print to print integer
   pd.print(5);
   // Call print to print float
   pd.print(500.263);
   // Call print to print character
   pd.print("Hello D");
}

讓我們編譯和運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:

Printing int: 5
Printing float: 500.263
Printing string: Hello D

運(yùn)算符重載

可以重新定義或超載最多可用在D內(nèi)置運(yùn)算符因此程序員可以使用運(yùn)算符與用戶定義的類型也是如此。

運(yùn)算符可以使用字符串運(yùn)算其次是ADD,SUB超載等基于正被重載的運(yùn)算符。我們可以重載運(yùn)算符+,如下圖所示添加兩個(gè)箱子。

Box opAdd(Box b)
{
   Box box = new Box();
   box.length = this.length + b.length;
   box.breadth = this.breadth + b.breadth;
   box.height = this.height + b.height;
   return box;
}

以下是該示例使用一個(gè)成員函數(shù)來(lái)顯示運(yùn)算符的重載的概念。在這里,一個(gè)對(duì)象作為參數(shù)傳遞,其屬性將使用此對(duì)象來(lái)訪問(wèn),這將調(diào)用this操作符的對(duì)象可以使用此運(yùn)算符來(lái)訪問(wèn),解釋如下:

import std.stdio;

class Box
{
   public:

      double getVolume()
      {
         return length * breadth * height;
      }
      void setLength( double len )
      {
         length = len;
      }

      void setBreadth( double bre )
      {
         breadth = bre;
      }

      void setHeight( double hei )
      {
         height = hei;
      }

      Box opAdd(Box b)
      {
         Box box = new Box();
         box.length = this.length + b.length;
         box.breadth = this.breadth + b.breadth;
         box.height = this.height + b.height;
         return box;
      }
   private:
      double length;      // Length of a box
      double breadth;     // Breadth of a box
      double height;      // Height of a box
};
// Main function for the program
void main( )
{
   Box box1 = new Box();    // Declare box1 of type Box
   Box box2 = new Box();    // Declare box2 of type Box
   Box box3 = new Box();    // Declare box3 of type Box
   double volume = 0.0;上一篇:類指針下一篇:D語(yǔ)言封裝