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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

C++派生类与基类构造函数调用次序

發(fā)布時(shí)間:2023/11/27 生活经验 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++派生类与基类构造函数调用次序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本文用來(lái)測(cè)試C++基類和派生類構(gòu)造函數(shù),析構(gòu)函數(shù),和拷貝構(gòu)造函數(shù)的調(diào)用次序。
運(yùn)行環(huán)境:SUSE Linux Enterprise Server 11 SP2 ?(x86_64)?

#include <iostream>
using namespace std;

class Base
{
public:
? ? Base()
? ? {
? ? ? ? cout << "Base Constructor" << std::endl;
? ? }

? ? Base(const Base& other)
? ? {
? ? ? ? cout << "Base Copy Constructor" << std::endl;
? ? }

? ? virtual ~Base()
? ? {
? ? ? ? cout << "Base Destructor" << std::endl;
? ? }

? ? const Base & operator = (const ?Base& other)
? ? {
? ? ? ? cout << "assignment operator" << std::endl;
? ? }
};

class Derived: public Base
{
public:
? ? Derived()
? ? {
? ? ? ? cout << "Derived Constructor" << std::endl;
? ? }

? ? Derived(const Derived& other)
? ? {
? ? ? ? cout << "Derived Copy Constructor" << std::endl;
? ? }

? ? virtual ~Derived()
? ? {
? ? ? ? cout << "Derived Destructor" << std::endl;
? ? }

? ? const Derived & operator = (const ?Derived& other)
? ? {
? ? ? ? cout << "assignment operator" << std::endl;
? ? }
};
==============================================================
A. 測(cè)試派生類對(duì)象
int main(int argc, char *argv[])
{
? ? Derived d1;
? ? return 1;
}
輸出:
Base Constructor
Derived Constructor
Derived Destructor
Base Destructor

結(jié)論:?
1.先構(gòu)造父類,才構(gòu)造子類,沒(méi)有父親,哪有兒子啊!
2.即使子類(派生類)沒(méi)有顯式(explicit)的調(diào)用(在初始化列表中調(diào)用)父類(基類)的構(gòu)造函數(shù),父類的構(gòu)造函數(shù)也會(huì)被調(diào)用;
================================================================
B. 測(cè)試基類的拷貝構(gòu)造函數(shù)
int main(int argc, char *argv[])
{
? ? Base b1;
? ? cout << "b1 constructed done" << ?std::endl;
? ? Base b2 = b1;
? ? cout << "b2 constructed done" << ?std::endl;
? ? Base b3(b2);
? ? cout << "b3 constructed done" << ?std::endl;

? ? return 1;
}

輸出結(jié)果:
Base Constructor
b1 constructed done
Base Copy Constructor
b2 constructed done
Base Copy Constructor
b3 constructed done
Base Destructor
Base Destructor
Base Destructor

結(jié)論:
1. 代碼: "Base b2 = b1;" 和 "Base b3(b2);"
將調(diào)用拷貝構(gòu)造函數(shù),而不是其它的(賦值、構(gòu)造)函數(shù);

擴(kuò)展: 函數(shù)參數(shù)傳值調(diào)用也會(huì)調(diào)用拷貝構(gòu)造函數(shù)
添加函數(shù):
void Func(Base b)
{
}

int main(int argc, char *argv[])
{
? ? Base b1;
? ? cout << "b1 constructed done" << ?std::endl;
? ? Func(b1);
? ? return 1;
}
輸出結(jié)果:
Base Constructor
b1 constructed done
Base Copy Constructor
Base Destructor
Base Destructor

可見(jiàn): 函數(shù)參數(shù)傳值調(diào)用也會(huì)調(diào)用拷貝構(gòu)造函數(shù)
==================================================================
C. 測(cè)試派生類的拷貝構(gòu)造函數(shù)
int main(int argc, char *argv[])
{
? ? Derived b1;
? ? cout << "b1 constructed done" << ?std::endl;
? ? Derived b2 = b1;
? ? cout << "b2 constructed done" << ?std::endl;
? ? Derived b3(b2);
? ? cout << "b3 constructed done" << ?std::endl;

? ? return 1;
}
輸出結(jié)果:
Base Constructor
Derived Constructor
b1 constructed done
Base Constructor
Derived Copy Constructor
b2 constructed done
Base Constructor
Derived Copy Constructor
b3 constructed done
Derived Destructor
Base Destructor
Derived Destructor
Base Destructor
Derived Destructor
Base Destructor

結(jié)論:
1. 派生類的拷貝構(gòu)造函數(shù)被調(diào)用前,會(huì)調(diào)用子類的構(gòu)造函數(shù);

總結(jié)

以上是生活随笔為你收集整理的C++派生类与基类构造函数调用次序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男人疯狂高潮呻吟视频 | 99久 | 亚洲色图导航 | 欧美性生话| 第一色网站 | 午夜看片福利 | 美女久久久久 | 综合色在线视频 | 欧美激情另类 | eeuss国产一区二区三区黑人 | 猛1被调教成公厕尿便失禁网站 | 欧美老肥熟 | 国产一区资源 | 日韩在线第一区 | 顶级嫩模啪啪呻吟不断好爽 | 国产精品腿扒开做爽爽爽挤奶网站 | 视频一二三区 | 国产精品99久久久久久久 | 青青在线 | 轻点好疼好大好爽视频 | 麻豆乱码国产一区二区三区 | 写真福利片hd在线播放 | 欧美色视频在线 | 亚洲国产日本 | 人人看人人爱 | 欧美精品久久久久久久久老牛影院 | 人妻少妇精品无码专区 | 天天插天天 | 成人网站在线进入爽爽爽 | 亚洲男人天堂av | 我和公激情中文字幕 | japanese24hdxxxx日韩 | 亚洲成a人在线观看 | 性欧美18一19内谢 | 国产精品免费一区 | 97超碰免费在线观看 | 午夜精品国产精品大乳美女 | 美女91网站| 午夜小视频网站 | 久久av资源网 | 欧美aaaaaaa| 国产av一区二区三区传媒 | 91粉色视频 | 韩日视频在线观看 | 成人深夜影院 | 国产精品久久福利 | 男女深夜福利 | 中文字幕另类 | 欧美日韩国产综合网 | 欧美瑟瑟| 免费av网站在线看 | 大肉大捧一进一出好爽视频动漫 | 成人高清视频免费观看 | 人妻无码久久一区二区三区免费 | 成人7777 | 亚洲成年人在线观看 | 日本少妇一级 | 免费一级淫片aaa片毛片a级 | 五月婷婷激情视频 | 亚洲国产综合av | 亚洲一区二区乱码 | 国产成人精品久久久 | 国精产品一区二区三区 | 又大又粗弄得我出好多水 | 五月婷婷久久久 | 亚洲经典视频 | 国产99在线 | 在线色| 丰满人妻一区二区三区免费视频棣 | 欧美人与禽猛交乱配视频 | 超碰免费公开 | 久久精品国产一区二区 | 日韩久久电影 | 国产伦精品一区二区三区免费迷 | 日本成人午夜视频 | 午夜免费一级片 | 国产精品国产三级国产aⅴ原创 | 国产视频精品一区二区三区 | 欧美日韩国产高清 | 精品久久毛片 | 亚洲乱码国产乱码精品精的特点 | 黄网站免费在线 | 日韩一区二区三区四区在线 | 日本成片网 | 亚洲综合五月 | 国产精品系列在线观看 | 亚洲第一二三区 | 免费搞黄网站 | 男女做事网站 | 成人国产在线视频 | 国产在线精品成人欧美 | 日韩高清在线一区 | 欧美成人黑人xx视频免费观看 | 国产一级一级国产 | 久久国产精品亚洲 | 日色网站| 自拍第一页 | 特级毛片在线播放 | 天堂资源在线播放 |