如果乙個函式是內聯的,那麼在編譯時,編譯器會把該函式的**副本放置在每個呼叫該函式的地方。用inline指定,內聯函式通常短小精悍沒有while和for迴圈,能夠幫助提公升程式執行的速度
#include using namespace std;inline
int max(int x, int
y)//
程式的主函式
intmain( )
#include usingnamespace
std;
class
box
double
volume()
intcompare(box box)
private
:
double length; //
length of a box
double breadth; //
breadth of a box
double height; //
height of a box};
int main(void
)
else
return0;
}
#include usingnamespace
std;
class
box
double
volume()
private
:
double length; //
length of a box
double breadth; //
breadth of a box
double height; //
height of a box
};int main(void
)
上面的例子,返回結果:
constructor called.
constructor called.
平時呼叫類5.94
volume of box1: 5.94
daqing ptrbox:0x7ffe09478430
address value0x7ffe094784182
volume of box2: 102
static靜態函式標誌可以這樣來理解:
函式內部定義的變數,在程式執行到它的定義處時,編譯器為它在棧上分配空間,然後,函式在棧上分配的空間在此函式執行結束時會釋放掉,這樣就產生了乙個問題: 如果想將函式中此變數的值儲存至下一次呼叫時,如何實現? 最容易想到的方法是定義乙個全域性的變數,但定義為乙個全域性變數有許多缺點,最明顯的缺點是破壞了此變數的訪問範圍(使得在此函式中定義的變數,不僅僅受此函式控制)。所以需要static這樣屬於區域性但是又能夠全域性訪問的變數。
#include usingnamespace
std;
class
box
double
volume()
private
:
double length; //
長度double breadth; //
寬度double height; //
高度}; //
初始化類 box 的靜態成員
int box::objectcount = 0; //
訪問或者修改靜態成員可以不用例項,直接上就行,因為靜態類是為類服務的(不支援this),靜態屬性只能初始化一次
int main(void
)
以上例項返回結果:
constructorcalled.constructorcalled.totalobjects:2靜態類的方法也是一樣的,不用例項化直接呼叫就是了,和php差不多
c 物件導向之 內聯函式
c 中支援內聯函式,其目的是為了提高函式的執行效率,用關鍵字 inline 放在函式定義 注意是定義而非宣告,下文繼續講到 的前面即可將函式指定為內聯函式,內聯函式通常就是將它在程式中的每個呼叫點上 內聯地 展開,假設我們將 max 定義為內聯函式 inline int max int a,int ...
C 物件導向 內聯函式
1.內聯函式與常規函式的區別不在於編寫方式,而在於被呼叫的執行機制不同。2.內聯函式中,編譯器使用函式 替換 複製 函式呼叫。可以模擬但不同於巨集替換 3.內聯函式優點 執行效率高 4.如何使用內聯特性?在函式宣告或定義前使用關鍵字inline 5.內聯函式只會出現在編譯器中,經編譯器最終形成的可執...
C 之內聯函式
一 目的 提高程式執行速度所做的一項改進。二 內聯函式與常規函式的區別 編譯過程的最終產品是程式 由一組機器語言指令組成。執行程式時作業系統將這些指令載入到計算機記憶體中,因此每條指令都有特有的記憶體位址。計算機隨後逐步執行這些命令。執行到函式呼叫指令時,程式將在函式呼叫後立即儲存該指令的記憶體位址...