(1)左移、右移操作符重載
?a. 操作符<<的原生意義是按位左移巫湘,如 1<< 2
?b. 意義000 0001-> 000 0100
?c. 代碼1重載左移操作符昙沦,將變量或常量左移到一個對象中:
#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 << "D.T.Software" << endl;
? ?double a = 0.1;
? ?double b = 0.2;
? ?cout << a + b << endl;
? ?return 0;
}
運行結果:
(2)c++標準庫概述
?a. c++標準庫不是c++語言的一部分
?b. c++標準庫是由類庫和函數(shù)庫組成的集合
?c. 庫中定義的類和對象都位于std命名空間中
?d. 庫的頭文件都不帶.h
?e. c++標準庫涵蓋了c庫的功能
(3)C++標準庫預定義了多數(shù)常用的數(shù)據(jù)結構
?
?
代碼2 初探標準庫#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
using namespace std;
int main()
{
? ?printf("Hello world!\n");
? ?
? ?char* p = (char*)malloc(16);
? ?
? ?strcpy(p, "D.T.Software");
? ?
? ?double a = 3;
? ?double b = 4;
? ?double c = sqrt(a * a + b * b);
? ?
? ?printf("c = %f\n", c);
? ?
? ?free(p);
? ?
? ?return 0;
}
運行結果:
?
?
?(4)標準庫使用
?代碼3輸入輸出流使用:
#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;
}
運行結果:
?
?