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

關於構造函數 c++

編輯:C++入門知識

class F { 
public:
      F() {}
      F(int) {}
      void f() {}
};

void test() {
      F f1;
      F f2();
      f1.f();   //可以正常執行
      f2.f();   //會報錯,因為編譯認為F f2();是定義了一個返回值為F類型的函數,f2並不是F的對象,也無f()方法。
}



關於 new F() 和 new F 的區別。


class F { 
public:
      int a;
      int b;
};

void test() {
      F *f1 = new F;
      F *f2 = new F();
      cout << f1->a << endl; //此時輸出值為不確定的,根據內存狀態而定
      cout << f2->a << endl; //此時是輸出0;
      // 這是因為當F時PoD類型時,其成員變量會初始化;
      // POD類型是指一個類或對象,其成員是原生數值類型(int, unsigned char, float, bool等等)
      // 或者另外一個POD類型。POD對象看起來像C語言風格的結構對象
}


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