国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

淺談C++中的構造函數分類及調用規則

2020-05-23 14:07:14
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了C++中的構造函數分類及調用規則,文中根據參數寫出了幾種不同類型的構造函數并解釋了如何調用,需要的朋友可以參考下
 

構造函數的分類
這里簡單地將C++中的構造函數分一下類,直接看下面的代碼表達,說明在注釋中:

#include <iostream> using namespace std;  class Text { public:   Text() // 無參數構造函數   {     m_a = 0;     m_b = 0;     cout << "無參數構造函數" << endl;   }    Text(int a) // 有參數構造函數   {     m_a = a;     m_b = 0;     cout << "無參數構造函數" << endl;   }    Text(int a, int b) // 有參數構造函數,有三種調用方法   {     m_a = a;     m_b = b;     cout << "有參數構造函數" << endl;   }    // 賦值構造函數,也叫copy構造函數   Text(const Text& obj)   {     cout << "這也是構造函數" << endl;   }    ~Text();  private:   int m_a;   int m_b; };    int main() {   // 1括號法   Text t1; // 調用無參數構造函數    // 2等號法   Text t2 = (3, 4, 5, 6, 7);   // C++對等號進行了加強,c++編譯器自動的調用構造函數    // 3直接調用構造函數,手動調用構造函數   Text t3 = Text(1, 2); // 這里涉及到匿名對象   return 0; } 

構造函數調用規則研究
1)當類中沒有定義任何一個構造函數時,c++編譯器會提供默認無參構造函數和默認拷貝構造函數
2)當類中定義了拷貝構造函數時,c++編譯器不會提供無參數構造函數
這里一定注意,當你只定義一個拷貝構造函數,在創建對象時是不能直接調用無參數構造函數的。
3) 當類中定義了任意的非拷貝構造函數(即:當類中提供了有參構造函數或無參構造函數),c++編譯器不會提供默認無參構造函數
當類中定義了一個多參數的構造函數,那么也是不存在無參數構造函數
4 )默認拷貝構造函數成員變量簡單賦值
總結:只要你寫了構造函數,那么你必須用。
也再次印證了拷貝構造函數也是構造函數,一定要注意這個易錯點。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大英县| 喀什市| 冕宁县| 海阳市| 葫芦岛市| 中宁县| 运城市| 绥中县| 朝阳市| 石景山区| 合水县| 仙桃市| 上杭县| 临高县| 正宁县| 内丘县| 正安县| 平顶山市| 左权县| 当涂县| 永善县| 吴桥县| 金寨县| 太仆寺旗| 桐城市| 阿合奇县| 陵川县| 比如县| 大连市| 资溪县| 永登县| 昭平县| 曲松县| 会东县| 沙田区| 盐池县| 唐河县| 桓仁| 温宿县| 新野县| 江都市|