C 基礎知識day3

2021-08-17 05:31:53 字數 2604 閱讀 8406

1.過載函式

// 函式過載:函式名相同,可以有不同的定義  實現形式不同

void swap_int(int &a, int &b)

void swap_double(double &a, double &b)

void swap_char(char &a, char &b)

// 函式名相同,形參型別不同,可以構成函式過載

// c++編譯器對函式的處理:編譯的時候將引數型別加入到函式名中形成新的函式名

// 函式過載的規則:

// 1、引數型別不同

// 2、引數個數不同

// 3、引數的順序不同

int add(int a, int b)   // addii

int add(int a, int b, int c)  // addiii

// 注意事項:函式的返回值不能作為過載的條件  

函式過載和函式預設引數 使用的時候需要注意

2.類

// 封裝:

// 1、將 資料(變數==屬性) 和 運算元據的方法(函式) 放到一塊

// 2、對 內部成員提供訪問控制 達到資訊隱藏的目的

// 類 === 類似高階的結構體

// class 用來定義類

// 訪問控制:

// public   : 公有成員   在類的內部和外部都可以使用

// private  : 私有屬性   在類的內部可用, 外部不可用

// protected: 保護屬性   在類的內部可用, 外部不可用

class student  

void setname(char *name)

void show()

char *getname()

private:  

int _id;      // 成員變數   屬性

char *_name;  // 成員變數   屬性

};// 定義乙個類的變數  我們將這個變數叫做 該類的乙個 物件

student s, s1, s2;

3.結構和類的區別

// 結構預設的成員屬性是 公有的

struct a ;

// 類預設的成員屬性是 私有的

class b ;

4.類的使用規範

5.建構函式和析構函式

// 建構函式:在定義物件的時候對 物件進行初始化的函式

// 1、函式名和類名相同

// 2、建構函式沒有返回值

// 3、構造是不需要手動呼叫的,在建立物件的時候編譯器自己呼叫

// 4、建構函式可以被過載

// 拷貝建構函式:用另乙個物件 對當前物件進行初始化

// 類名(const 類名 &變數名)

// 析構函式:在物件被釋放的時候編譯器自動呼叫來釋放物件資源

// 1、~類名

// 2、沒有返回值

// 3、沒有引數

// 4、不能被過載

// 物件做函式引數傳遞的時候,會呼叫拷貝建構函式

// 傳引用可以避免拷貝建構函式的呼叫

// void func(student s1)

void func(student &s1)

// 拷貝呼叫:函式返回值是物件

// 1、不使用函式的返回值

// 函式返回的時候會產生乙個匿名物件,用返回的物件對匿名物件進行初始化,呼叫拷貝建構函式

// 這個匿名物件沒人用,所以立馬被釋放

// 2、用新物件去收返回值

// (1)、函式返回的時候會產生乙個匿名物件,用返回的物件對匿名物件進行初始化,呼叫拷貝建構函式

// (2)、將 變數名 s1 給這個匿名物件使用,匿名物件變成了有名物件了

// 3、用舊物件去接收返回值

// (1)、函式返回的時候會產生乙個匿名物件,用返回的物件對匿名物件進行初始化,呼叫拷貝建構函式

// (2)、用匿名物件 對 s1 進行賦值!!!!!!!!  不會呼叫建構函式

// (3)、匿名物件 還是 乙個匿名的  所以就被釋放

class student

;student s;       // 呼叫無參建構函式

student s1(10);  // 呼叫建構函式 student(int id)

student s2(s);   // 呼叫拷貝建構函式

student s3 = s2; // 呼叫拷貝建構函式 用 s2 對 s3 進行初始化

6.淺拷貝和深拷貝

// 1、如果類中 乙個建構函式都沒有,則編譯器會自動生成乙個無參建構函式,是乙個空的函式

// 2、如果類中沒有析構函式,則編譯器會生成乙個析構函式,也是空的

// 3、如果類中沒有定義 拷貝建構函式,則則編譯器會生成乙個拷貝建構函式,進行值的複製

// 編譯器預設的拷貝構造 只能複製值,不能複製空間  *****> 淺拷貝

// 深拷貝:進行堆上空間的複製  ---->  自己寫拷貝建構函式

student(const student &obj)

Python基礎知識 day3 列表

4.元組 在python中,字串屬於不可變物件,不支援原地修改,如果需要修改其中的值,只能建立新的字串物件。但是,經常我們確實需要原地修改字串,可以使用io.stringio物件或array模組 import io s hello world ios io.stringio s print ios....

遊戲程式設計基礎day3

虛擬環境管理工具 配置虛擬環境 workon home 路徑 mkvirtualenv 虛擬環境名 在workon home下建立虛擬環境 建立完畢後自己啟用 workon 虛擬環境名 使用workon 後面跟的這個虛擬環境 deactivate 退出虛擬環境 建立遊戲最小系統 建立遊戲專案的時候必...

機器學習基礎DAY3

方式 1.特徵選擇 2.主成分分析 1.特徵選擇 1 原因 冗餘 部分特徵的相關度高,容易消耗計算效能 雜訊 部分特徵對 結果有負影響 2 定義 特徵選擇就是單純地從提取到的所有特徵中選擇部分特徵作為訓練集特徵,特徵在選擇前和選擇後可以改變值 也不改變值,但是選擇後的特徵維數肯定比選擇前小,畢竟我們...