第32課 初探C++標準庫

來源:互聯網
上載者:User

標籤:模組   產品   解決問題   int   換行   9.png   重載   執行個體   public   

有趣的重載:

實驗:

將1左移到cout對象中。

將Test改名為Console,此時我們的本意是想讓這個cout代表當前的命令列:

cout代表命令列的一個執行個體,本意是想將1列印到命令列上。

我們在重載函數中用printf列印:

運行結果如下:

可以看到1被列印出來了。

我們還可以重載輸出字元:

運行結果如下:

改進重載函數:

這樣第24行就實現了連續的傳送。

將分行符號定義成一個常量:

 

最終完善的程式:

 1 #include <stdio.h> 2  3 const char endl = ‘\n‘; 4  5 class Console 6 { 7 public: 8     Console& operator << (int i) 9     {10         printf("%d", i);11         12         return *this;13     }14     Console& operator << (char c)15     {16         printf("%c", c);17         18         return *this;19     }20     Console& operator << (const char* s)21     {22         printf("%s", s);23         24         return *this;25     }26     Console& operator << (double d)27     {28         printf("%f", d);29         30         return *this;31     }32 };33 34 Console cout;35 36 int main()37 {38     cout << 1 << endl;39     cout << "D.T.Software" << endl;40     41     double a = 0.1;42     double b = 0.2;43     44     cout << a + b << endl;45     46     return 0;47 }

運行結果如下:

重載過後我們就可以使用console執行個體來輸出了,而不用每一次都輸入格式化字串了。

C++標準庫:

 重複發明輪子並不是一件有創造性的事,站在巨人的肩膀上解決問題會更加高效。

上述的輸出資料流對象已經在C++標準庫中實現了。

C++標準庫有一個子庫,這個子庫涵蓋了C庫的功能。

C++編譯環境的組成:

C語言相容庫和C++標準庫中的C庫子模組功能是重複的,但是它們所包含的標頭檔是不一樣的。

標準庫的常用資料結構:

 

最右邊一列就是C語言子庫。為了相容C語言編譯器的庫中所提供的功能。

C++標準庫中的C庫相容:

我們在上面程式中使用的 #include <stdio.h>就是C相容庫,而不是C語言庫,C相容庫是由編譯器廠商提供的,不是標準庫的一部分。

 例:

這裡包含的標頭檔既不是C++標準庫,也不是C語言庫,它是C++編譯器廠商為了推廣自己的產品而提供出來的C相容庫。

我們將C相容庫換成C++標準庫中的C相容模組:

這時就得開啟std命名空間了。

運行結果如下:

 

C++標準庫:

前輩們將顯示器和鍵盤實現成了C++中的對象。

C++中的輸入輸出:

 1 #include <iostream> 2 #include <cmath> 3  4 using namespace std; 5  6  7 int main() 8 { 9     cout << "Hello world!" << endl;10     11     double a = 0;12     double b = 0;13     14     cout << "Input a: ";15     cin >> a;16     17     cout << "Input b: ";18     cin >> b;19     20     double c = sqrt(a * a + b * b);21     22     cout << "c = " << c << endl;23     24     return 0;25 }

運行結果如下:

 

小結:

 

第32課 初探C++標準庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.