c 學習筆記(初學)

2021-07-16 07:14:46 字數 3400 閱讀 3717

一、抽象和類

注意事項及一些要點技巧:

1,使用#ifndef來訪問多次包含同乙個檔案,防止標頭檔案被重複引用。(「被重複引用」是指乙個標頭檔案在同乙個cpp檔案中被include了多次,這種錯誤常常是由於include巢狀造成的。比如:存在a.h檔案#include "c.h"而此時b.cpp檔案匯入了#include "a.h" 和#include "c.h"此時就會造成c.h重複引用。)

格式如下:

#ifndef xx_h

#define xx_h

...#endif

2,使用類物件的程式都可以直接訪問公有部分,但只能通過公有成員函式(或友元函式)來訪問物件的私有成員。private是類物件的預設訪問控制,因此不必在宣告中使用。

3,在類宣告中定義方法等同於用原型替換方法定義,然後在類宣告的後面將定義該寫為內聯函式。

4,修改實現:

如果要使數字格式保持一致,ostream類包含可用於控制格式的成員函式。

std::cout.setf(std::ios_base::fixed,std::ios_base::floatfield)

即設定了cout物件的乙個標記,命令cout使用定點表示法。

二、類的析構函式和建構函式

程式不能直接訪問資料成員,而必須通過成員函式訪問,才能成功地將物件初始化。一般來說,最好是在建立物件時對它進行初始化。

1、類建構函式

專門用於構造新物件,將值賦給它們的資料成員。程式宣告物件時,將自動呼叫建構函式。

建構函式與new建立物件的方法(stock為乙個類):

stock *pstock = new stock("qwe",18,19.0);

總而言之,建構函式被用來建立物件,而不能通過物件來呼叫。

2、預設建構函式

當且僅當沒有定義任何建構函式時,編譯器才會提供預設建構函式。所以,為類定義了建構函式後,我們就必須為它提供預設建構函式。

定義方式:

① 給已有建構函式的所有引數提供預設值。

② 通過函式過載定義另乙個沒有引數的建構函式

建立預設建構函式後,便可以宣告物件變數,而不對它們進行顯示初始化。

3,析構函式

析構函式完成清理工作。如果建構函式使用new來分配記憶體,則析構函式必須使用delete來釋放這些記憶體。

4,const成員函式

只要類方法不修改呼叫物件,就應該將其宣告為const。

例如,我們建立了乙個stock物件:const stock land = stock("qwew");要使其呼叫show()函式,則函式宣告應為:void show() const;函式定義的開頭也應該為:void stock::show() const。

三、this指標

1,使用方法

① 在類的非靜態成員函式中返回類物件本身的時候,使用return *this。

② 當引數與成員變數名相同時,如this->n = n。

2,特點

① 只能在成員函式中使用。

② 在成員函式的開始前構造,在成員函式的結束後清除。

了解了this指標,在實現成員函式例如void stock::show() const時,我們即可寫做 void show(const stock *this),其中的資料成員用this->name代替。前端呼叫如top.show()則可以轉換為show(&top),這樣,將呼叫的位址賦給了this指標。

四、物件陣列

初始化物件陣列的方法:

首先使用預設建構函式建立陣列元素,然後花括號中的建構函式將建立臨時物件,然後將臨時物件的值複製到相應的元素中。

五、類作用域

在類中定義的名稱的作用域為整個類,而該名稱只在該類中是已知的,因此,可以在不同類中使用相同的類成員名而不會引起衝突。

建立作用域為類的常量的方法:

① 在類中宣告乙個列舉:

class bakery;

double costs[months];

② 使用關鍵字static:

class bakery

{private:

static const int months = 12;

double costs[months];

C 初學筆記

判斷文字是否為數值型 string str1 textbox1.text string str2 textbox2.text int i1,i2 if int.tryparse str1,out i1 if int.tryparse str2,out i2 false if後面只有一句話,可以不用 ...

初學機器學習筆記

機器學習 machine learning,ml 是一門多領域交叉學科,涉及概率論 統計學 逼近論 凸分析 演算法複雜度 理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的效能。機器學習是人工智慧研究發展到一定階段的必然產物。二...

Oracle學習筆記 初學

2002年註冊甲骨文公司 基於cs架構 資料庫的例項 資料庫 通常的資料庫只有資料庫的概念 而oracle有資料庫例項的概念 資料庫儲存了 資料檔案 控制檔案 日誌檔案 我們將這些靜態的檔案都稱之為資料庫,而這些檔案的產生和維護 通常都是由例項來完成 例項會載入這些檔案,然後在具體的記憶體裡 由後台...