雷火电竞-中国电竞赛事及体育赛事平台

歡迎來(lái)到入門(mén)教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

有關(guān)C++繼承與友元、繼承與類(lèi)型轉(zhuǎn)換詳解

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊:

實(shí)例如下:

#include <iostream> 

using namespace std; 

class a{
friend class pal;
private:
	int i;
protected:
	int j;
public:
	int k;
};

class b:public a{
protected:
	int l;
};

class c:protected a{};
class d:private a{};
class e:public b{};

class pal{
public:
	void f(a a1){
		cout<<a1.i;//正確,友元能訪問(wèn)私有成員
	}
	void f1(b b1){
		cout<<b1.i;//正確,友元能訪問(wèn)派生類(lèi)的基類(lèi)部分
		cout<<b1.l;//出錯(cuò),pal類(lèi)不是b的友元
	}
};

class deri_pal:public pal{
public:
	void f2(a a1){
		cout<<a.i;//出錯(cuò),友元不能繼承
	}
};

int main() 
{	
	a a1;
	b b1;
	c c1;
	d d1;
	e e1;
	a1=b1;//正確,只有公共繼承的派生類(lèi)才能向基類(lèi)轉(zhuǎn)換
	a1=e1;//正確
	a1=c1;//出錯(cuò),只有公共繼承的派生類(lèi)才能向基類(lèi)轉(zhuǎn)換
	a1=d1;//出錯(cuò),只有公共繼承的派生類(lèi)才能向基類(lèi)轉(zhuǎn)換
	system("pause");
	return 0; 
} 

對(duì)基類(lèi)指針進(jìn)行動(dòng)態(tài)綁定時(shí),派生類(lèi)必須是public派生而來(lái),否則不能把基類(lèi)指針綁定到派生類(lèi)對(duì)象上

#include <iostream> 

using namespace std; 

class a{};
class b:public a{};
class c:protected a{};
class d:private a{};
class bb:public b{};
class cc:public c{};
class dd:public d{};




int main() 
{	
	a a1;b b1;c c1;d d1;bb bb1;cc cc1;dd dd1;
	a* a1=&b1;//ok
	a* a2=&c1;//error
	a* a3=&d1;//error
	a* a4=&bb1;//ok
	a* a5=&cc1;//error
	a* a6=&dd1;//error
	system("pause");
	return 0; 
} 

以上這篇有關(guān)C++繼承與友元、繼承與類(lèi)型轉(zhuǎn)換詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持我們。

上一篇:簡(jiǎn)單談?wù)勱P(guān)于C++中大隨機(jī)數(shù)的問(wèn)題

欄    目:C語(yǔ)言

下一篇:C語(yǔ)言 數(shù)據(jù)結(jié)構(gòu)之連續(xù)存儲(chǔ)數(shù)組的算法

本文標(biāo)題:有關(guān)C++繼承與友元、繼承與類(lèi)型轉(zhuǎn)換詳解

本文地址:http://m.jygsgssxh.com/a1/Cyuyan/1823.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有