c 基礎知識day9

2021-08-17 17:14:43 字數 3382 閱讀 4765

1.異常在類層次間的使用

//案例:設計乙個陣列類 myarray,過載操作,

// 陣列初始化時,對陣列的個數進行有效檢查

// index<0 丟擲異常enegative

// index = 0 丟擲異常 ezero

// 3)index>1000丟擲異常etoobig

// 4)index<10 丟擲異常etoosmall

// 5)esize類是以上類的父類,實現有引數構造、並定義virtual void printerr()輸出錯誤。

#include using namespace std;

class myarray

virtual void printerr() = 0;

protected:

int size;

}; class enegative:public esize

virtual void printerr()

};class ezero:public esize

virtual void printerr()

};class etoobig:public esize

virtual void printerr()

};class etoosmall:public esize

virtual void printerr()

};};myarray::myarray(int len)

int main()

catch (myarray::esize &e)

return 0;

}

2.標準異常庫

#include #include using namespace std;

class myexception:public exception

virtual const char * what() const

private:

char *msg; // 存異常資訊

};class student

private:

int age;

};int main()

catch (exception &e)

return 0;

}

3。標準輸入流

#include using namespace std;

int main1()

int main2()

cout << "空格: " << count_space << endl;

cout << "字母: " << count_letter << endl;

cout << "數字: " << count_num << endl;

return 0;

}int main3()

// cin.ingore(n) 忽略緩衝區中n個字元

int main4()

int main()

4.檔案輸入輸出流

#include #include using namespace std;

// 寫檔案

void func1()

// 讀檔案

void func2()

fin.ignore(4);

int a;

fin >> a;

cout << a << endl;

//char ch;

//while ((ch=fin.get()) != eof)

// cout << ch;

fin.close();

}// 二進位制檔案讀寫

class student

void show()

private:

int id;

char name[20];

};// 寫 二進位制檔案

void func3()

// 讀二進位制檔案

void func4()

fin.close();

}int main()

5.演算法容器迭代器

#include #include #include using namespace std;

void func()

while (it != v.end())

// 演算法:運算元據

// 1、排序

sort(v.begin(), v.end());

cout << "排序後:" << endl;

it = v.begin();

while (it != v.end())

reverse(v.begin(), v.end());

cout << "逆序後:" << endl;

it = v.begin();

while (it != v.end()) }

int main()

6,string
#include #include #include using namespace std;

// string 的構造

void func1()

// 2、string 的遍歷

void func2()

cout << endl;

// 4、 和 at 函式的區別

// 如果訪問越界,終止程式執行,不會丟擲異常

// at 如果訪問越界,會丟擲乙個異常

trycatch(exception &e) }

// 3、string 和 char *的轉換

void func3()

// 4、字串的連線、拷貝、比較

void func4()

; s1.copy(str, 6, 1);

cout << str << endl;

if (s1 == s2)

cout << "s1 == s2" << endl;

else

cout << "s1 != s2" << endl;

}// 5、查詢和替換

void func5()

cout << s1 << endl;

}// 6、刪除和插入

void func6()

// 7、可以用演算法函式操作字串

void func7()

void func8()

reverse(s.begin()+begin, s.end());

cout << s << endl;

}int main()

day9 函式基礎知識,裝飾器

個人理解裝飾器 無參裝飾器 功能用來拓展函式 為原函式新增其他功能 原則 1 原始碼不動 2 呼叫方式不變 1 既要新增新功能又要保持原函式 不變,那麼只能重新寫乙個函式 以outer函式為例 將原函式傳入outer函式中,然後在outer函式中新增新功能拓展函式,函式的呼叫巢狀 2 但是有要求呼叫...

pwn學習日記Day9 基礎知識積累

if up n and c 接收到的上乙個字元為回車符,而當前接收不到新字元,則 buf buf 1 刪除puts函式輸出的末尾回車符 buf x00 breakputs輸出完後還有其他輸出 if up n and c x 一定要找到洩漏資訊的字串特徵 data buf 1 data x00 bre...

C 基礎程式設計DAY9

寫乙個函式,取乙個整數值並返回此整數的各數字反序的數值 include include using namespace std int reverse m1 int x else if x 9 x 100 else if x 99 x 1000 else int reverse m2 int x e...