程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c c++編程-c++關於靜態數據成員的問題,看以下程序,會輸出什麼數字,過程是什麼

c c++編程-c++關於靜態數據成員的問題,看以下程序,會輸出什麼數字,過程是什麼

編輯:編程解疑
c++關於靜態數據成員的問題,看以下程序,會輸出什麼數字,過程是什麼

圖片圖片

最佳回答:


打印出221

 Obj obj1; //會調用構造,所以i++了(變為1了)
    f();        //調用函數f(),在函數內定義了一個對象,也會調用構造,i++了(變為2了),打印出第一個數字2,
               //打印完以後,f()函數結束了,obj2離開了作用域,調用析構i--了(變為1了)
    Obj *obj3 = new Obj;//會調用構造,所以i++了(變為2了)
    cout << obj3->getVal();//打印出2
    delete obj3;//調用析構,i--(變為1了)
    cout << Obj::getVal();//打印出1

注:
靜態數據成員是所有對象所公有的,因此,對多個對象來說,靜態數據成員只存儲一處,供所有對象共用。靜態數據成員的值對每個對象都是一樣,但它的值是可以更新的。只要對靜態數據成員的值更新一次,保證所有對象存取更新後的相同的值,這樣可以提高時間效率。

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