4.1c++新增內容
constexper物件
1.如果認定某個物件為常量表示式,可以把它宣告雯constexpr型別
2.宣告為constexpr的資料物件一定是乙個常量,必須用常量表示式初始化
例:constexpr int size=20;//20為常量表示式
auto型別說明符
1.用auto宣告變數的型別,由編譯器去自動分析表示式的型別,推斷出變數的實際型別。
2.定義auto變數必須有初始值
特例:auto a;//錯誤,沒有初始值
auto r=1,pi=3.14//錯誤,兩變數的型別不一致
decltype型別指示符
1.作用是選擇並返回運算元的型別
2.編譯器會分析表示式的型別,並不真正的計算表示式的值
range-for語句
從頭至尾對容器或者序列的所有元素逐個執行某種操作
例:for(declaration:expression)
statement;
expression是要處理的序列
declaration定義乙個變數,表示序列中的每個元素
statement是一條語句或者語句塊,表示對元素的處理**
★指標和引用
特點:1.指標持有乙個物件的位址,成為指標「指向」該物件
2.通過指標可以簡介操縱它指向的物件
用法:1.每個指標都有相關的型別,每次運用指標是要定義指出
2.要獲取物件的位址,要使用取位址符「&」
3.指標解引用運算子「*」,如果指標指向乙個物件,則可以通過指標間接訪問該對 象使用」 * 」。
指標的值:指標不能儲存非位址值,也不能被賦值或初始化為不同型別的位址值
空指標:指標值為時是乙個空指標,即不指向任何物件的指標
可用:0
nullptr
預處理常量null
注意事項:定義指標時,應該對指標進行初始化
自增、自減運算適用於指向陣列元素的指標
★引用(左值引用)
1.型別:通過左值引可以間接的操縱物件
在程式中,一弄主要用作函式的引數
2.定義和初始化:引用由型別識別符號和乙個取位址符(&)來定義
type&refvariable=leftvalue
引用必須被初始化,初始值是乙個有記憶體的物件
3.引用關係:引用一旦初始化,就不能再只想其他的物件,對左值引用的所有操作都會被應用在它所指向的物件上
例如:int x=100,y=20;
int&r=x;//r為x的引用
r=x; //r不會變成y的引用,而是x=y;
★指標和左值引用的區別
1.有空指標,指標可以不指向任何物件,其值為0,表示空指標
2.沒有空引用,引用必須指向乙個物件,而且一直指向該物件,不催在空引用,如果引用的值為0,表示它指向的單元值為0;
★cv限定詞
1.const限定詞
關鍵字const限定物件是不可改變的
2.volatile限定詞
關鍵字volatile限定的物件不能被編譯器例行優化
一.1.函式定義
返回型別 函式名(引數列表)
例:乙個求階乘的函式定義
//演算法:n!=12…*(n-1)*n
//函式名fact ,返回型別int,乙個int型別的形參n
int fact(int n)
//函式體結束
2.返回型別
函式必須制定乙個返回型別
如果函式不返回任何結果,將其返回型別宣告為void
3.函式呼叫
呼叫形式:函式名(實參列表);
例如:int main()
{int val = fact(5);
cout <<「5!=」<
函式的返回
遇到retuen語句時,結束函式的執行,return 語句的作用:
一是返回return語句中的值
二是將控制權從被呼叫函式轉移會主調函式上來
5.函式宣告
函式在使用前必須宣告
乙個函式可以在程式中多次宣告
函式定義也可以被用作宣告,但是函式在程式中只能被定義一次
★引數傳遞方式
1.傳引用,按引用傳遞引數
2.按值傳遞(把實參值複製到形參的儲存區中,即用實參值初始化形參
二.1.陣列引數
當陣列作為引數時,將傳遞陣列的第乙個元素的位址
2.返回型別和return語句
return 語句結束當前正在執行的函式,將控制權返回給函式的呼叫者
return語句的兩種形式:
①return;(用在返回型別為void的函式中,不是必需的)
②retuen 表示式;
三.尾置返回型別語法
語法形式:auto 函式名 (形參列表)-> 返回型別;
這種語法形式對於返回型別比較複雜的函式最為有效
在c++中擴充套件了struct的概念,使之可以包含函式作為成員
結構體內的函式被稱為成員函式,結構體中的資料則被稱為資料成員
★擴充套件的結構體被稱為類,結構體型別的變數被稱為物件
訪問限定符:
1.public成員在程式的任何函式或者類中都可以被訪問
2.private成員只能由類自己的成員函式或友元訪問(需要隱藏資訊時作此宣告
3.protected成員可以在派生類中訪問
訪問許可權介於public和private之間主要用於繼承中
傳送訊息就是呼叫成員函式
例如s.print()就是向物件s傳送乙個print()訊息
物件在記憶體中的布局是依賴於特定的編譯器實現的
★每個物件都是唯一可區分的,每個物件都有唯一的儲存位址,無資料成員的物件的大小至少是1。
this指標
每個成員函式都有乙個隱含的引數,指向接受訊息的物件,稱為this指標
x類的this指標的型別是x*(不能改變this指標的值,也不能取this指標的位址)
用途:1.區分與資料成員同名的變數
2.返回當前物件
3.取得當前物件位址
物件導向程式設計 學習總結
從面相過程到基於物件的程式設計,儘管c 這門課程已經結束,但學習c 的腳步還未停止。c 很多內容如輸入輸出流stl的知識希望自己能夠在暑假將這些內容進一步的掌握,並讓自己從入門到高階。將 分檔案,這樣可以更高效地管理和修改 命令列的操作,雖然學的不多,而且已經忘得差不多了,但是自己起碼知道這個東西,...
PHP物件導向的程式設計學習總結
php物件導向的程式設計 php5 陣列和物件 都屬於php的復合型別 乙個變數可以儲存多個單元 物件比陣列更強大,不僅可以儲存多個資料,還可以將函式存在物件 物件的三大特性 封裝 繼承 多型 物件導向程式設計 oop 程式都是由物件組成 物件導向和面向過程這間的區別 最小的單位 函式 最小的單位 ...
物件導向程式設計,自我總結 一
先解釋一下下面那個案例過程,首先我們通過class person建立了乙個類,然後類裡面有乙個constructor,它可以接收我們傳遞過來的引數,同時把這個例項返回回來,也就是返回給zzz,當我們用new一呼叫,它會自動執行constructor,然後把勒布朗傳遞給user,然後又把user賦值給...