欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

賦值兼容規(guī)則(C++)-創(chuàng)新互聯(lián)

在一定條件下,不同類型的數(shù)據(jù)之間可以進(jìn)行類型轉(zhuǎn)換,如可以將整型數(shù)據(jù)賦給雙精度型變量。在賦值之前,先把整型數(shù)據(jù)轉(zhuǎn)換成雙精度型數(shù)據(jù),然后再把它賦給雙精度型變量。這種不同類型數(shù)據(jù)之間的自動(dòng)轉(zhuǎn)換和賦值,稱為賦值兼容。在基類和派生類對(duì)象之間也存有賦值兼容關(guān)系,基類和派生類對(duì)象之間的賦值兼容規(guī)則是指在需要基類對(duì)象的任何地方,都可以使用其子類對(duì)象來代替。

創(chuàng)新互聯(lián)專注于鳩江網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供鳩江營銷型網(wǎng)站建設(shè),鳩江網(wǎng)站制作、鳩江網(wǎng)頁設(shè)計(jì)、鳩江網(wǎng)站官網(wǎng)定制、微信平臺(tái)小程序開發(fā)服務(wù),打造鳩江網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供鳩江網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

下面主要講積基類和派生類對(duì)象之間的賦值兼容
派生類的對(duì)象可以賦值給基類對(duì)象。

? ?A a1; //定義基類A對(duì)象a1
? ?B b1; //定義類A的公用派生類B的對(duì)象b1
? ?a1=b1; //用派生類B對(duì)象b1對(duì)基類對(duì)象a1賦值

在賦值時(shí)舍棄派生類自己的成員,只進(jìn)行數(shù)據(jù)成員的賦值。

實(shí)際上,所謂賦值只是對(duì)數(shù)據(jù)成員賦值,對(duì)成員函數(shù)不存在賦值問題,內(nèi)存中數(shù)據(jù)成員和成員函數(shù)是分開的。

注意: 賦值后不能企圖通過對(duì)象a1去訪問派生類對(duì)象b1的成員,因?yàn)閎1的成員與a1的成員是不同的。??

假設(shè)age是派生類B中增加的公用數(shù)據(jù)成員,分析下面的用法:

? a1.age=23;//錯(cuò)誤,a1中不包含派生類中增加的成員
b1.age=21; //正確,b1中包含派生類中增加的成員

只能用子類對(duì)象對(duì)其基類對(duì)象賦值,而不能用基類對(duì)象對(duì)其子類對(duì)象賦值,理由是顯然的,兩種對(duì)象的大小是不同的,因?yàn)榛悓?duì)象不包含派生類的成員無法對(duì)派生類的成員賦值。同理,同一基類的不同派生類對(duì)象之間也不能賦值
賦值兼容規(guī)則(C++)
2·派生類的對(duì)象可以初始化基類的引用。
已定義了基類A對(duì)象a1,可以定義a1的引用變量:

? ? A a1; //定義基類A對(duì)象a1
? ? B b1; //定義公用派生類B對(duì)象b1
? ? A &r=a1; //定義基類A對(duì)象的引用變量r(A的別名是r),并用a1對(duì)其初始化

這時(shí),r和a1共享同一段存儲(chǔ)單元。也可以用派生類對(duì)象初始化引用變量r,將上面最后一行改為

A& r=b1;//定義基類A對(duì)象的引用變量r,并用派生類B對(duì)象b1//對(duì)其初始化

注意: 此時(shí)r并不是b1的別名,也不與b1共享同一段存儲(chǔ)單元。它只是b1中基類部分的別名

這里的r定義為A類的引用,所以它的有效范圍就只有A類那么大,r與b1中基類部分共享同一段存儲(chǔ)單元,r與b1具有相同的起始地址。?
如果函數(shù)的參數(shù)是基類對(duì)象或基類對(duì)象的引用,相應(yīng)的實(shí)參可以用子類對(duì)象。
3·派生類對(duì)象的地址可以賦給指向基類的指針。也就是說,指向基類對(duì)象的指針變量也可以指向派生類對(duì)象。
例定義一個(gè)基類Student(學(xué)生),再定義Student類的公用派生類Graduate(研究生), 用指向基類對(duì)象的指針輸出數(shù)據(jù)。

#include <iostream>
#include <string>

using namespace std;
class Student//聲明Student類
{
   public :
   Student(int, string,float );//聲明構(gòu)造函數(shù)
   void display( );//聲明輸出函數(shù)
   private :
   int num;
   string name;
   float score;
};
Student::Student(int n, string nam,float s)  //定義構(gòu)造函數(shù)
{
   num=n;
   name=nam;
   score=s;
}
void Student::display( )//定義輸出函數(shù)
{
   cout<<endl<<″num:″<<num<<endl;
   cout<<″name:″<<name<<endl;
   cout<<″score:″<<score<<endl;
}
class Graduate:public Student//聲明公用派生類Graduate
{
   public :
   Graduate(int, string ,float ,float );//聲明構(gòu)造函數(shù)
   void display( );//聲明輸出函數(shù)
   private :
   float pay;//工資
};
Graduate::Graduate(int n, string nam,float s,float p):Student(n,nam,s),pay(p){ }//定義構(gòu)造函數(shù)
void Graduate::display() //定義輸出函數(shù)
{
   Student::display(); //調(diào)用Student類的display函數(shù)
   cout<<″pay=″<<pay<<endl;
}
int main()
{
   Student stud1(1001,″Li″,87.5); //定義Student類對(duì)象stud1
   Graduate grad1(2001,″Wang″,98.5,563.5); //定義Graduate類對(duì)象grad1
   Student *pt=&stud1;//定義指向Student類對(duì)象的指針并指向stud1
   pt->display( ); //調(diào)用stud1.display函數(shù)
   pt=&grad1; //指針指向grad1
   pt->display( ); //調(diào)用grad1.display函數(shù)
}

很多讀者會(huì)認(rèn)為: 在派生類中有兩個(gè)同名的display成員函數(shù),根據(jù)同名隱藏的規(guī)則,被調(diào)用的應(yīng)當(dāng)是派生類Graduate對(duì)象的display函數(shù),
在執(zhí)行Graduate::display函數(shù)過程中調(diào)用Student::display函數(shù),輸出num,name,score,然后再輸出pay的值。

事實(shí)上這種推論是錯(cuò)誤的,先看看程序的輸出結(jié)果:

num:1001
name:Li
score:87.5
num:2001
name:wang
score:98.5
并沒有輸出pay的值。

問題在于pt是指向Student類對(duì)象的指針變量,它的指類是Student類,即使讓它指向了grad1,但實(shí)際上pt指向的是grad1中從基類繼承的部分(它指向的空間只能是基類中數(shù)據(jù)成員那么大的空間)。通過指向基類對(duì)象的指針,只能訪問派生類中的基類成員,而不能訪問派生類增加的成員。所以pt->display()調(diào)用的不是派生類Graduate對(duì)象所增加的display函數(shù),而是基類的display函數(shù),所以只輸出研究生grad1的num,name,score3個(gè)數(shù)據(jù)。

其實(shí),通過強(qiáng)制轉(zhuǎn)換也可以將Student類的地址賦值給Graduate類所定義的指針,但是,這樣做不安全,會(huì)讓使用者誤以為可以調(diào)用Graduate類中增加的成員,其實(shí)不然,所以不建議使用

綜上所述,主要是因?yàn)榛惡团缮愔谐蓡T所占空間大小的不同,所引發(fā)的賦值兼容問題,例如int類型賦值給double類型,就是賦值兼容問題,而double類型賦值給int類型,就是不兼容,必須要強(qiáng)轉(zhuǎn),不然會(huì)報(bào)錯(cuò)

原文鏈接:https://blog.csdn.net/ilovekobemusic/article/details/8839371

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站欄目:賦值兼容規(guī)則(C++)-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://www.aaarwkj.com/article10/dsdogo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、商城網(wǎng)站、Google、做網(wǎng)站網(wǎng)站建設(shè)、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
五月婷婷丁香噜噜噜噜| 亚洲日本国产精品第一页| 国产成人av在线观看| 国内成人午夜激情视频| 国产精品国产三级专区| 91麻豆国产福利在线| 国产精品亚洲欧美中字| 国产亚洲一区激情小说| 国产精品人妻在线av| 国产精品久久久久大屁股精品性色 | 中文字幕一区二区三区网站| 国产熟女高潮一区二区| 成人在线免费观看视频国产| 日韩精品一区二区三区高清| 中文字幕精品人妻在线| 乱码人妻精品一区二区三区| 国产又爽又乱的视频在线| 激情五月天色婷婷久久| 亚洲三级伦理在线视频| 色人阁在线精品免费视频 | 男男啪啪猛进猛出无遮挡| 亚洲国产欧美日韩国产| 日韩黄色一级片免费看 | 黄片大全视频在线免费观看| 日韩不卡在线免费观看视频| 亚洲精品老司机福利在线| 亚洲国产日韩欧美综合久久| 国产天美剧情av一区二区| 一区二区三区国产激情| 国产极品美女视频福利| 蜜桃网站视频免费观看| 美女午夜福利一区二区| 国产极品av一区二区三区| 国产v精品欧美精品v日韩| 欧美色精品人妻视频在线| 漂亮人妻被中出中文字幕| 日本中文字幕一区二区视频 | 日本中文字幕一二三四区| 久久夜色噜噜噜av一区| 亚洲免费成人一区二区| 日本一区二区不卡视频在线播放 |