C 基礎總結

2021-05-22 06:41:09 字數 1613 閱讀 2838

1.類的介面呼叫順序不能規定順序:即以任何順序呼叫都不應發生異常。

2.當乙個類的物件超出其作用域時, 編譯器即會呼叫其析構函式...

cout<<"end";

//在cout<<"end";之前,會看到類test的析構函式的輸出...由彙編**也可看出test::~test()的呼叫..

3.string:

string的c_str()實際上返回的是string的資料成員char*的指標. 

如:char * str_p=const_caststr.c_str();

然後用str_p修改其指向的字元陣列的值,則: string s的值也會發生改變.

4.用delete 釋放乙個 已經不存在的 物件,異常..

用delete 釋放乙個物件,則編譯器會 在其之前呼叫該物件指標指向物件的析構函式.

delete obj_p=null;//不會發生異常..

5.對於任何乙個類,如果作者沒有過載某些運算子,編譯器預設地過載了必要的運算子...如:賦值=,.......

!!! 當傳值來傳遞和返回該類的物件 都會呼叫拷貝建構函式.

static資料成員必須在任何程式塊之外定義..

class c

int c::x; //define...即使x為私有的也應如此..

6.對任何乙個函式(方法),不要輕易地返回乙個物件,或乙個物件的引用.... 返回的*(new c) ; 除外..

//若返回的物件引用,並且該物件在該函式中定義,則當發生其它函式呼叫時,可能覆蓋這個物件所在的區域.

//若返回乙個物件時,一定要處理好 operator+()與 拷貝建構函式test(test& t):data(null){}

!!!!!!!!有動態資料的成員了處理!!!!!!!

test(const test &t):data(null),length(0)

test(const test &t):data(null),length(0)

7.setfill,setw等需要帶參操作符需要標頭檔案

8.對檔案操作: ifstream infile; ofstream outfile; if(!infile)檔案沒開啟..

9.static_cast(float_var)

const_cast(c_c_p) //去掉常數特性

reinterpret_cast指標型別的改變

dynamic_cast

10.匿名enum主要用途就是定義常量: enum

11. getline(infile,string_buff);   //如果設有讀入字元,將返回 false

12. string :erase,replace, find(s2,index):若沒有找到s2,將返回乙個無窮大..

13. ***(const yyy &c)const;

14. 例外處理: trycatch(out_of_range){}

trycatch(bad_alloc){}

try{}catch(){}是怎麼實現的???

15.無名空間: namespace{}-->相當於c中static

無名enum:  常量

無名union: 普通變數

C 基礎總結

1 在字串前加乙個 字元,中特殊字元可以不用轉義 2 關鍵字checked和unchecked對表示式進行溢位檢查 3 foreach迴圈遍歷陣列 4 多維陣列宣告 矩形陣列,不同維度之間用逗號隔開 5 鋸齒陣列 jagged array 宣告如下 int jaggedintarray 初始化如下 ...

c 基礎總結

一 c 程式結構 命名空間 c 程式是利用命名空間組織起來的。如果要呼叫某個命名空間中的類或者方法,首先要使用using 指令來引入命名空間,using指令的基本形式為 using 命名空間 eg 類 類是一種資料結構,它可以封裝資料成員 函式成員和其他成員 類修飾符 class 類名 main方法...

C 基礎總結

explicit 函式棧框架 decltype推導四準則 通用引用 型別轉換 系統呼叫 函式指標作用 typedef const double p fun const double d p fun是一種typename,而不是函式指標 void fun int arg void void 返回值為v...