有关C++继承与友元、继承与类型转换详解

发布时间 - 2026-01-10 22:25:10    点击率:

实例如下:

#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;//正确,友元能访问私有成员
	}
	void f1(b b1){
		cout<<b1.i;//正确,友元能访问派生类的基类部分
		cout<<b1.l;//出错,pal类不是b的友元
	}
};

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

int main() 
{	
	a a1;
	b b1;
	c c1;
	d d1;
	e e1;
	a1=b1;//正确,只有公共继承的派生类才能向基类转换
	a1=e1;//正确
	a1=c1;//出错,只有公共继承的派生类才能向基类转换
	a1=d1;//出错,只有公共继承的派生类才能向基类转换
	system("pause");
	return 0; 
} 

对基类指针进行动态绑定时,派生类必须是public派生而来,否则不能把基类指针绑定到派生类对象上

#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; 
} 

以上这篇有关C++继承与友元、继承与类型转换详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# 友元  # 继承  # C++继承的定义与注意事项  # 代码讲解C++继承和派生  # C语言实现C++继承和多态的代码分享  # C语言模式实现C++继承和多态的实例代码  # C++继承介绍  # C/C++中多重继承详解及其作用介绍  # 派生类  # 给大家  # 而来  # 希望能  # 能把  # 这篇  # 绑定  # 小编  # 大家多多  # namespace  # std  # protected  # cout  # friend  # void  # public  # int  # pal  # private  # ccffcc 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何使用Passport实现OAuth2?(完整配置步骤)  如何快速搭建高效可靠的建站解决方案?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何破解联通资金短缺导致的基站建设难题?  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  如何在自有机房高效搭建专业网站?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  如何生成腾讯云建站专用兑换码?  jquery插件bootstrapValidator表单验证详解  如何挑选最适合建站的高性能VPS主机?  Python自动化办公教程_ExcelWordPDF批量处理案例  Laravel观察者模式如何使用_Laravel Model Observer配置  潮流网站制作头像软件下载,适合母子的网名有哪些?  如何在 Pandas 中基于一列条件计算另一列的分组均值  Android实现代码画虚线边框背景效果  如何实现建站之星域名转发设置?  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  昵图网官方站入口 昵图网素材图库官网入口  用v-html解决Vue.js渲染中html标签不被解析的问题  Laravel如何发送系统通知?(Notification渠道示例)  Internet Explorer官网直接进入 IE浏览器在线体验版网址  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  香港服务器建站指南:免备案优势与SEO优化技巧全解析  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  Java类加载基本过程详细介绍  JavaScript如何实现倒计时_时间函数如何精确控制  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  微信小程序 五星评分(包括半颗星评分)实例代码  如何在IIS7中新建站点?详细步骤解析  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  如何挑选优质建站一级代理提升网站排名?  zabbix利用python脚本发送报警邮件的方法  如何挑选高效建站主机与优质域名?  如何快速搭建二级域名独立网站?  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Laravel怎么实现验证码(Captcha)功能  如何在云主机上快速搭建网站?  如何在橙子建站上传落地页?操作指南详解  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  googleplay官方入口在哪里_Google Play官方商店快速入口指南