日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

类中的多种构造函数

發布時間:2025/3/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 类中的多种构造函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

構造函數術語:

? ??? ??? ??1. 默認構造 : 指的是沒有形參的構造函數, 由編譯器默認提供, 在某些場合編譯器需要自動調用一個類對象的構造函數時, 只能調用默認構造.例如: 子類繼承了父類,當子類對象被構造的時候, 父類 ? ? ? ? ? ? ? ? ? ? 的構造也會被自動調用,此時就只能自動調用父類的默認構造

? ? ? ? ? ? 2.默認構造函數:沒有形參,方法體也是空的,目的是構造一個對象

MyClass.h文件class MyClass{public :MyClass();}; MyClass.cpp文件#include "MyClass.h"MyClass::MyClass(){}

? ? ?2. 轉換構造 : 指的是那些只有一個形參,且參數類型是非本類類型的構造函數們. 一般能夠顯式調用 (例如 `MyClass obj(5)`), 也能隱式調用: `fun(5);` fun的形參是`MyClass`類型?

MyClass.h文件class MyClass{public :MyClass(int i);MyClass(double i);private :double m_Num; }; MyClass.cpp文件#include "MyClass.h"MyClass::MyClass(int i){//構造函數中可以什么都不實現}MyClass::MyClass(double n){//構造函數中也可以實現對成員變量的賦值this->m_Num = n;} main.cpp文件int main(){//創建出MyClass的對象//方法1:MyClass myclass(5);//方法2:MyClass myClass = 5.0;//此時編譯器會將 MyClass myClass = 5.0;裝換成 MyClass myclass(5.0); return 0;}

?3. 拷貝構造: 指的是只有一個形參, 且參數類型是本類類型的引用. 一般是在定義一個對象的時候, 將另一個對象作為初始值時,就會自動調用這個版本的構造函數, 一般編譯器會默認提供一個拷貝 ? ? ? ? ? ? ? ? ?構造, 默認提供的拷貝構造會將對象的內存空間進行拷貝.

MyClass.h文件class MyClass{public :MyClass();MyClass(MyClass& myclass); private:char* cStrName;}; MyClass.cpp文件#include "MyClass.h"MyClass::MyClass(MyClass& myclass){//注意:拷貝構造的形參一定要是對象的引用,如果不是引用那么就會導致拷貝構造不斷調用拷貝構造//當前就為拷貝構造函數//拷貝構造函數被調用的時機//1.當某個函數的形參是MyClass類型時//例: int FunMyClass(MyClass myclass){ }//2.當Myclass對象給另一個MyClass對象賦值時//例: MyClass myClass1;// MyClass myClass2 = myClass1;//3.當函數返回值是MyClass類型時://例: MyClass CreateMyClass(){ MyClass myClass; return myClass;}}MyClass::MyClass(){//無參構造函數}//深拷貝和淺拷貝的區別//1.一般在類中存在指針時就必須使用深拷貝MyClass::MyClass(MyClass& myClass){//淺拷貝 //僅僅進行簡單賦值,將當前指針保存的內存地址賦值給新的對象。如果此時舊對象調用析構,那么舊對象的成員變量指針指向的內存空間也會被釋放,那么這時新對象再去找該空間時就找不到,從而引發程序異常this->cStrName = myClass.cStrName;}//2.深拷貝MyClass::MyClass(MyClass& myClass){//深拷貝時對新指針一定要指向重新創建出的空間,并將舊空間的數據存入新的空間中str_name = _strdup(test.str_name);//_strdup()是string.h中的一個函數,作用是重新創建一塊內存空間,內存空間的大小就是實參的空間大小,并且將值賦值給新創建的內存空間}

?類中包含有指針成員的時候, 一般就需要自己編寫拷貝構造, 實現對指針指向的內存進行拷貝的 ? ? ? ? ? ? ? ? ? ?功能. 否則默認拷貝構造是不會去拷貝指針指向的內容. (深拷貝和淺拷貝的區別)

? ??? ??? ??4. 帶參構造 : 含有兩個以上的形參的構造函數統稱帶參構造.

MyClass.h文件class MyClass{public:MyClass(int i,int j);}; MyClass.cpp文件#include "MyClass.h"MyClass::MyClass(int i ,int j){//帶參構造函數}

?

總結

以上是生活随笔為你收集整理的类中的多种构造函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩国产图片 | 亚洲欧美91 | 91麻豆精品国产91久久久久久 | 亚洲中文字幕视频一区 | 日韩在线中文字幕视频 | 又色又爽又黄无遮挡的免费视频 | 国产99久久久欧美黑人 | 黑人一区二区三区 | 精品三级| 激情伊人网| 欧美在线观看一区 | 一级片一区二区三区 | 久久婷婷激情 | 日本乳汁视频 | 一区二区三区视频在线免费观看 | 黄网在线看 | 天堂av一区 | 非洲黑妞xxxxhd精品 | 亚洲综合自拍偷拍 | av在线www| av在线麻豆| xxxxx毛片| 天天操天天射天天舔 | 床戏高潮呻吟声片段 | 久久久视| 中文字幕乱码免费 | 性做久久久久久久 | av每日更新在线观看 | 日韩天堂在线视频 | 全国探花 | 亚洲天堂毛片 | 精品久久综合 | 99re6在线视频| 欧美一区二区久久 | 自拍偷拍小视频 | 狠狠的干狠狠的操 | 网站免费在线观看 | 欧美日韩精品一区二区在线观看 | 两个女人互添下身爱爱 | 福利网站在线观看 | 俄罗斯女人裸体性做爰 | 成人在线观看av | 国产成人欧美一区二区三区的 | 国产又粗又黄视频 | 国产免费黄色网址 | 日日骚一区二区 | 色呦呦呦呦 | 91免费官网 | 亚洲欧美日韩精品在线观看 | 亚洲五月花 | 久久香视频 | 免费看污的网站 | 麻豆一区在线 | 精品伦精品一区二区三区视频 | 国产成人无码性教育视频 | 亚洲一区二区伦理 | 中文字幕日韩三级片 | 小sao货水好多真紧h无码视频 | 91精品欧美一区二区三区 | 三上悠亚人妻中文字幕在线 | 毛片手机在线 | 欧美一区二区三区成人精品 | 一级片免费的 | 欧美日韩国产麻豆 | 欧美性猛交xxxx免费看久久久 | 美日韩黄色片 | 麻豆视频一区二区三区 | 夜夜躁狠狠躁日日躁 | 美女破处视频 | 日韩欧美亚洲天堂 | 精品免费一区二区三区 | 自拍第一页 | 在线免费观看高清视频 | 欧美激情欧美激情在线五月 | 亚洲日b视频 | 草草影院ccyycom | 精品久久二区 | 久久91精品国产91久久小草 | 综合久久亚洲 | 亚洲欧洲综合av | 日本黄色小片 | 91麻豆产精品久久久久久夏晴子 | 双女主黄文 | 少妇媚药按摩中文字幕 | 动漫玉足吸乳羞免费网站玉足 | 亚洲最大av网 | 伊人在线视频 | 国产精品久久国产精麻豆96堂 | 日本午夜小视频 | 高清无打码 | 另类小说一区二区 | 影音先锋三级 | 伊人青青草 | 国产小毛片 | 九色在线 | 99成人国产精品视频 | 国产精品美女久久久久久 | 久久亚洲精品小早川怜子 | 91av入口|