程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> c++靜態部分變量和靜態函數示例

c++靜態部分變量和靜態函數示例

編輯:關於C++

c++靜態部分變量和靜態函數示例。本站提示廣大學習愛好者:(c++靜態部分變量和靜態函數示例)文章只能為提供參考,不一定能成為您想要的結果。以下是c++靜態部分變量和靜態函數示例正文


在函數體內界說了一個變量,每當法式運轉到該語句時都邑給該部分變量分派棧內存。但跟著法式加入函數體,體系就會發出棧內存,部分變量也響應掉效。但有的時刻我們須要在兩次挪用之間對變量的值停止保留。平日的設法主意是界說一個全局變量來完成。然則如許一來,變量曾經不再屬於函數自己了,不再僅受函數的掌握,給法式的保護帶來未便。靜態部分變量正好可以處理這個成績。靜態部分變量保留在全局數據區,而不是保留在棧中,每次的值堅持到下一次挪用,直到下次賦新值。該變量在全局數據區內分派內存;靜態部分變量在法式履行到該對象的聲明處時被初次初始化,即今後的函數挪用不再停止初始化(這一點異常的主要);靜態部分變量普通在聲明處初始化,假如沒有顯式初始化,會被法式主動初始化為0;它一直駐留在全局數據區,直到法式運轉停止。但其感化域為部分感化域,當界說它的函數或語句塊停止時,其感化域隨之停止;靜態函數重要是用來拜訪靜態成員,不克不及直接拜訪類的非靜態成員;靜態成員函數重要為了挪用便利,不須要生成對象就可以挪用。好比


class X
{
public:
    void MethodA();
    static void MethodB();
}

此時MethodB可以直接挪用,X::MethodB();
而MethodA必需在師長教師成類對象以後能力夠被挪用,X x; x.MethodA();


//Example 3  

#include <iostream.h>
void fn();  

void main() {
fn(); fn(); fn();
}

void fn() {

static int n=10; //僅在首次挪用它的時刻被初始化,第二次挪用的時刻這句話就被疏忽
cout<<n<<endl;
n++;



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved