有关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


相关推荐: 如何在宝塔面板中修改默认建站目录?  如何制作一个表白网站视频,关于勇敢表白的小标题?  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  JavaScript如何实现错误处理_try...catch如何捕获异常?  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  高端建站三要素:定制模板、企业官网与响应式设计优化  JS碰撞运动实现方法详解  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  如何在建站主机中优化服务器配置?  利用 Google AI 进行 YouTube 视频 SEO 描述优化  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  北京网站制作的公司有哪些,北京白云观官方网站?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  LinuxShell函数封装方法_脚本复用设计思路【教程】  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  如何用AWS免费套餐快速搭建高效网站?  详解jQuery停止动画——stop()方法的使用  青岛网站建设如何选择本地服务器?  如何快速搭建高效香港服务器网站?  如何在搬瓦工VPS快速搭建网站?  如何快速建站并高效导出源代码?  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  如何彻底卸载建站之星软件?  如何用PHP快速搭建高效网站?分步指南  jQuery 常见小例汇总  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  如何实现建站之星域名转发设置?  Laravel怎么上传文件_Laravel图片上传及存储配置  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  如何快速查询网址的建站时间与历史轨迹?  PHP正则匹配日期和时间(时间戳转换)的实例代码  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  如何用美橙互联一键搭建多站合一网站?  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  Laravel如何处理表单验证?(Requests代码示例)  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  制作企业网站建设方案,怎样建设一个公司网站?  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  开心动漫网站制作软件下载,十分开心动画为何停播?  如何快速搭建自助建站会员专属系统?