国产探花免费观看_亚洲丰满少妇自慰呻吟_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 )默認拷貝構造函數成員變量簡單賦值
總結:只要你寫了構造函數,那么你必須用。
也再次印證了拷貝構造函數也是構造函數,一定要注意這個易錯點。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 纳雍县| 西安市| 钟祥市| 无锡市| 新龙县| 塘沽区| 施甸县| 将乐县| 乌苏市| 拜泉县| 孝感市| 南昌市| 望城县| 上杭县| 兴安县| 资溪县| 沙雅县| 措勤县| 津市市| 德化县| 沙湾县| 山西省| 偏关县| 华坪县| 兰西县| 贺州市| 北川| 浦江县| 大厂| 湘乡市| 通许县| 吉水县| 阿勒泰市| 安图县| 宝山区| 奇台县| 成武县| 泸西县| 云南省| 青州市| 南溪县|