C 基礎知識day8

2021-08-17 17:13:38 字數 1726 閱讀 4878

1.類模板

// 模板類派生類

// 1、派生乙個具體的類

class b:public a

private:

int b;

};// 2、派生乙個模板類

template

class c:public a

private:

t2 c;

};template

class d:public a

private:

t d;

};// 類模板物件作為函式引數傳遞

// 1、寫乙個確定具體的 模板類

// 類模板使用必須要指明型別

2.類模板的使用

// 1、類模板的成員函式在類的外部實現,則所有函式都要寫成函式模板形式

// 2、在表明該函式屬於哪個類的時候,要在類名後面加

// 3、函式的返回值一定要加上

// 1、運算子過載的友元函式,需要在 函式名和形參列表之間加

friend ostream& operator<< (ostream& out, complex&c);

// 2.3 在函式名和形參列表之間加 friend complexsub (complex&c1, complex&c2);

3.類模板中的static關鍵字

4.型別轉換

//static_cast      : 普通資料型別之間的強轉

//reinterpret_cast : 指標資料型別之間的轉換

//dynamic_cast     : 類層次之間資料型別的轉換

//const_cast       : 去掉變數的常量屬性

// 根據特殊的物件做一些特殊的事情

// dynamic_cast 將基類指標轉換為派生類指標

// 1、如果這個基類指標指向確實是要轉換的派生類型別的物件,返回指向這個物件的指標

// 2、如果這個基類指標指向的不是要轉換的派生類型別的物件,返回的是空指標 null

5.異常

// 1、異常是需要拋的 throw異常

// 2、異常是跨函式的

// 3、捕獲到異常變數後的處理方式:1、收下,不讓異常變數繼續拋  2、將異常變數再丟擲去

// 4、異常變數的捕獲是要嚴格匹配型別的,不允許變數的隱式轉換

// 將可能發生異常的語句放到 try 塊中

// 1、沒有異常發生,catch語句都不執行,程式從catch語句之後接著執行

// 2、有異常,匹配catch 型別,進入到相應的 catch語句執行,執行完後從catch語句之後接著執行

// 棧解旋:異常丟擲到異常變數被接收,期間所有的棧上的變數都會被自動釋放

6.異常變數的生命週期

// 1、用乙個普通變數去收丟擲的異常物件,會呼叫拷貝建構函式,異常物件直到異常處理結束以後才被釋放

// 2、用乙個引用去接收丟擲的異常物件,不會呼叫拷貝建構函式,異常物件到整個異常處理結束才釋放

// catch(error3 e)

// catch(error3 &e)

// 3、接收異常物件指標:

// a、如果是棧上的物件指標,則接收回來的時候棧上物件已經被釋放,指標是無效指標

//  b、如果是堆上的物件指標,必須手動呼叫delete釋放,否則會造成記憶體洩露

C 程式設計基礎DAY8

編寫乙個函式,確定乙個正數是否為完全數 乙個數,等於他的因子之和 用這個函式確定和列印1到1000之間的所有完全數。include include using namespace std intgetfullnumber if sum i sum 0 return0 int main 寫一函式,求斐...

遊戲程式設計基礎day8

rect類擁有的方法clamp 將矩形移動到另乙個矩形當中 move x,y 移動矩形 xy 支援數字型別 使用方法跟屬性 目的 為了簡便我們對圖形進行操作第乙個小遊戲 動感火車 import pygame import time import math pygame.init screen obj...

機器學習基礎DAY8

第八章 線性回歸 先從定義說起 誤差大小 sklearn線性回歸正規方程 梯度下降api sklearn.linear model.linearregression 正規方程 普通最小二乘線性回歸 coef 回歸係數 sklearn.linear model.sgdregressor 梯度下降 通過...