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...