时间:2021-05-19
实例如下:
#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派生而来,否则不能把基类指针绑定到派生类对象上
以上这篇有关C++继承与友元、继承与类型转换详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
C++中继承与动态内存分配的详解继承是怎样与动态内存分配进行互动的呢?例如,如果基类使用动态内存分配,并重新定义赋值和复制构造函数,这将怎样影响派生类的实现呢?
C++基类与派生类的转换在公用继承、私有继承和保护继承中,只有公用继承能较好地保留基类的特征,它保留了除构造函数和析构函数以外的基类所有成员,基类的公用或保护成
本文实例讲述了C++多重继承引发的重复调用问题与解决方法。分享给大家供大家参考,具体如下:前面简单介绍了一个C++多重继承功能示例,这里再来分析一个多重继承引发
本文实例讲述了Python面向对象程序设计之继承与多继承。分享给大家供大家参考,具体如下:1.继承在C++和Java中,使用继承时,子类的构造函数会自动调用父类
C++中友元函数与友元类详解总的来说,友元分为两类:友元函数与友元类。友元是针对类而言,它提供了一种非类的成员函数来访问类的非公有成员的一种机制。可以把一个函数