C++超詳細講解標準庫
一、有趣的重載
操作符 << 的原生意義是按位左移,例:1 <<2; 其意義是將整數(shù) 1 按位左移2位,即:0000 0001 → 0000 0100
現(xiàn)在來嘗試一下重載左移操作符,將變量或常量左移到一個對象中!
#include <stdio.h> const char endl = '\n'; class Console { public: Console& operator << (int i) { printf("%d", i); return *this; } Console& operator << (char c) { printf("%c", c); return *this; } Console& operator << (const char* s) { printf("%s", s); return *this; } Console& operator << (double d) { printf("%f", d); return *this; } }; Console cout; int main() { cout << 1 << endl; cout << "AutumnZe" << endl; double a = 0.1; double b = 0.2; cout << a + b << endl; return 0; }
輸出結果如下:
二、C++ 標準庫
- C++ 標準庫并不是C++語言的一部分
- C++ 標準庫是由類庫和函數(shù)庫組成的集合
- C++ 標準庫中定義的類和對象都位于 std 命名空間中
- C++ 標準庫的頭文件都不帶 .h 后綴
- C++ 標準庫涵蓋了 C 庫的功能
- C++ 編譯環(huán)境的組成
C++ 標準庫預定義了多數(shù)常用的數(shù)據(jù)結構
下面看一個 C++ 標準庫中的 C 庫兼容:
#include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> using namespace std; int main() { printf("Hello World\n"); char *p = (char*)malloc(16); strcpy(p, "AutumnZe"); printf("%s\n", p); double a = 3; double b = 4; double c = sqrt(a * a + b * b); printf("c = %f\n", c); free(p); return 0; }
輸出結果如下:
下面來看一下 C++ 中的輸入輸出:
#include <iostream> #include <cmath> using namespace std; int main() { cout << "Hello World" << endl; double a = 0; double b = 0; cout << "Input a:"; cin >> a; cout << "Input b:"; cin >> b; double c = sqrt(a * a + b * b); cout << "c = " << c << endl; return 0; }
輸出結果如下:
三、小結
- C++ 標準庫是由類庫和函數(shù)庫組成的集合
- C++ 標準庫包含經(jīng)典算法和數(shù)據(jù)結構的實現(xiàn)
- C++ 標準庫涵蓋了 C 庫的功能
- C++ 標準庫位于 std 命名空間中
到此這篇關于C++超詳細講解標準庫的文章就介紹到這了,更多相關C++標準庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Qt實現(xiàn)導出QTableWidget/QTableView數(shù)據(jù)
這篇文章主要介紹了在Qt中實現(xiàn)將QTableWidget或者QTableView中的數(shù)據(jù)直接導出的示例代碼,文中的示例代碼講解詳細,感興趣的可以了解一下2022-01-01C++中靜態(tài)成員函數(shù)訪問非靜態(tài)成員的實例
這篇文章主要介紹了C++中靜態(tài)成員函數(shù)訪問非靜態(tài)成員的實例的相關資料,需要的朋友可以參考下2017-07-07