繼續了解了c++語言的內容
c++是c語言的乙個超集,包含了c的所有特性,
1.結構,聯合,和列舉名
這些在c++中,都是型別名,使用之前不同於c語言。不必再結構名,聯合名或者列舉之前冠以structural,union或者enumerate。
例如:
在c++;
bool done;
string str;
number x;
2.const修飾符號c語言中習慣#define來定義常量;
const的作用與#define相似。但是const消除了#define的不安全性,
3.內聯函式
4.過載函式
1.問題的提出:求最大值問題
(1) int imax(int a[ ], int n); (2) double dmax(double a[ ], int n);這兩個函式的功能都是相同的,但是因為不同的函式名,給使用帶來了不方便,特別是在呼叫這些函式的時候,要根據運算元的不同而選擇應該呼叫那乙個函式。
2.問題解決:
c++允許幾個功能相似,但實現演算法不同的函式在相同的作用域內以相同函式名定義,從而形成過載,以提高程式的可讀性。
函式過載:兩個以上的函式,取相同的函式名,但是形參的個數或型別不同。編譯器根據實參和形參的型別及個數的最佳匹配,自動確定呼叫哪乙個函式。
注意事項:
過載函式的形參必須不同: 個數不同或型別不同。
編譯程式將根據實參和形參的型別及個數的最佳匹配來選擇呼叫哪乙個函式。
5.帶有預設引數值的函式
c++允許實參個數與形參個數不同,方法實在說明函式原型時(若沒有說明函式的原型,則在函式定義時)為乙個或者多個形參指定預設值,以後呼叫此函式時,若省略其中某一實參,則c++自動預設預設值作為相應引數的值。
例如:void init(int x=5 , int y=10)
則之後x與y的值預設為5和10;
注意事項:
(1)函式原型中,所有取預設值的引數必須出現在不取預設值的引數的右邊。
一旦開始定義取預設函式值,就不可以在說明非預設的引數
int fun(int i,
int j=5,
int k);--
--錯誤
應為:int fun (int i,
int k,
int j=5)
;
(2) 在函式呼叫時,若某個函式省略,則其後面的引數應該省略而採用預設值。不允許某個引數省略後,再給氣候的引數指定引數值。例如,
不允許出現
init(,20)
**作用域識別符號「 ::」**
*塊作用域*
我們把用花括號括起來的一部分程式稱為乙個塊。在塊內說明的識別符號,只能在該塊內引用,即其作用域在該塊內,開始於識別符號的說明處,結束於塊的結尾處。
在乙個函式內部定義的變數或在乙個塊中定義的變數稱為區域性變數。在函式內或復合語句內部定義的變數,其作用域是從定義的位置起到函式體或復合語句的結束。形參也是區域性變數。
使用的變數如果希望在區域性變數的作用域使用同名的全域性變數,可以在在該變數前面加上「::」,此時該變數待變同名的全域性變數。
6.new和delete運算子
學習過c語言的時候,使用malloc()和free()來警醒動態記憶體的管理(即分配與釋放)。c++則提供 new delete進行工作。
運算子new用於記憶體分配的最基本形式為:
指標變數名=new 型別;
運算子new可以自動計算
(1)記憶體型別的大小,不必使用sizeof()
(2)運算子new能正確返回指標型別的大小,而不必返回指標進行強制轉換。
*注:*使用new需要使用delete運算子顯式地釋放,否則這部分空間將不能**成為死空間
如果沒有足夠的空間分配,new將返回(null)。
7.引用
引用是c++對於c語言的擴充,引用就是變數的別名。
例如:
int i=5;
int&j=i;
//宣告j是乙個整型變數i的引用,用整形變數i對他進行初始化
j 是i 的別名而不是賦值,即使i的別名。
c++暫時寫到此處,除了c++,ps也有了一些了解。
C 基本知識
內聯函式 在c 98的標準下為63個關鍵字 1.普通的命名空間 namespace n1 n1為命名空間的名稱 2.命名空間可以巢狀 namespace n2 namespace n3 3.同乙個工程中允許存在多個相同名稱的命名空間,編譯器最後會合成同乙個命名空間中。1.加命名空間名稱及作用域限定符...
c 基本知識
1.類 包含某一物體的基本屬性的抽象。2.物件 具體指某乙個物體。實實在在存在的東西。3.建構函式 負責類建立物件的函式。如果類沒有宣告建構函式,c 編譯器會提供預設的無參的建構函式。這個函式只負責建立物件,不負責物件初始化工作。4.析構函式 負責釋放物件,記憶體的 5.變數訪問修飾符 public...
c 基本知識
函式過載 c語言的符號生成規則 只和函式名有關 c 的符號生成規則 函式原型 函式頭部 1.返回值 返回值不能作為過載的依據,可能會產生二義性 2.函式名 c語言的符號生成規則只和函式名有關,如果把函式名作為返回值的話,就和c語言衝突了.3.函式形參 1 引數個數 2 引數型別 3 引數順序 函式形...