標籤:com 支援 ati 整數 過程 類對象 class 調用 函數
:: 指定所在命名空間
1.cout << "" << book cout輸出 先字串 然後輸出book記憶體地區中的值;
2. 函數組成:傳回型別,函數名,參數表,函數體, 前三部分稱為函數原型
3. 擴充基礎資料型別 (Elementary Data Type),字串string, 複數complex number,向量vector, 列表list
#include<string> string c = "gett";
#include<vector> vector<string> c {20}; 包含20個字串類型的元素
4. 前置處理器指示符, 條件指示符#ifndef BOOK_H, 檢查在前面是否已經定義, 沒有定義,指示符為真,
#define 代碼 #endif 被執行;
5. c++ 使用庫 c開頭,去掉尾碼 .h
6. 檔案輸入輸出 #include<fstream>
7. 對象的動態分配
int *pint = new int {1024}; 分配一個沒有名字的int類型對象,初始值1024;返回對象在記憶體中的地址,這個地址被用來初始化指標對象pint;對於動態分配的記憶體,唯一的訪問方式是通過指標間接訪問;
int *pia = new int [4]; 分配一個含有四個整數的數組,pia擁有第一個元素的地址
必須顯示的釋放這些記憶體
delete pint;刪除單個 delete [] pia 刪除一個對象數組;
8. 基於對象設計類
class classname{
public ://公用操作
private://私人實現 };
操作稱為成員函數或方法
使用倆個成員訪問操作符,可以調用一個有名字的成員函數; 用於類對象(.) 類對象指標的(->)
資料成員名字前面加一個底線(_)
函數重載,多個相同名字的函數,參數列表必須不同:參數類型或數目不同
被聲明為static 的資料成語是一類特殊的共用資料成語,無論定義了多少個,待用資料成員在程式中只有一份;
在類體外定義成語函數,文法區別需要指出成語函數屬於哪個類,通過類網域作業符實現 :: 雙冒號;
解構函式,每個類對象在被程式最後一次使用之後,它的解構函式會自動被調用, 在類的名字前加 (~)來標識;解構函式會釋放在類對象使用和構造過程所獲得的資源;
protected保護層級,保護區內的資料成員和成員函數,不提供給一般的程式,只提供給衍生類別;
非公有的成員聲明,希望防止衍生類別直接存取某個成員,聲明private;如果確信某個成員提供了衍生類別需要直接存取的操作或資料存放區,而通過這個成員,衍生類別的實現會更有效,聲明protected;
為了把一個類設計成基類,找出類型相關的成員函數,標記為virtual(虛擬);
對於一個非虛擬函數的調用,編譯器在編譯時間刻選擇被調用的函數,虛擬函數調用 的決定要等到運行時刻;
class IntArrayRC : public IntArray 冒號定義了IntArrayRC 是從IntArray派生而來的,public表明衍生類別共用基類的公有介面
使用命名空間,namespace Cplus_Pri{
class ..{}; class.. {}; }
使用限定修飾名字元格式設定 namespace_identifier :: entity_name
名字空間別名允許一個可替代,短的
using 指示符,使名字空間內的所有聲明都可見 ; 允許使名字空間中單個聲明可見,
9. 數組類是C++標準庫一部分,叫 向量vector; 向量是一個類模板 ; vector數組可以在運行時刻動態增長(向現有的數組元素複製,插入附加元素);作為獨立的泛型演算法被提供;
vectot<int> ivec(10); 包含10個整型對象的向量
vector<string> svec(10);
#include<vector>
vector<int> vec; 空的vector; const int size =8; size為8的vector;
10. extern 聲明 extern string filename; extern 物件類型 名字; 聲明不是定義,不會引起記憶體配置;
如果一個變數是在全域域內定義的,系統提供初始值0;
在局部與定義的或new運算式動態分配的, 這些對象稱為未初始化的;不是沒有值,而是它的值是未定義的;
顯式文法 int v= 12; string pro = "hell";
隱士文法 int v(12); string pro ("hell");
每種內建資料類型都支援一種特殊的建構函式,將對象初始化為0
int v = init(); double d = double(); vector<int> v(10);
11. c++ 空類型指標(void*) , 可以被任何資料指標類型的地址賦值(函數指標不能賦值給它);
解引用操作符* 來間接讀寫
參考型別由類型標識符和一個取地址操作符來定義,引用必須被初始化; int v=111; int &refV = i;
引用必須總是指向一個對象,如果一個引用給另一個引用賦值,改變的是被引用的對象而不是引用本身;
c++