c语言友元,简单友元实例和访问申明using关键字

#include

//Y类的不完全定义

class Y;

//X类的定义

class X {

public:

void disp(Y py,char *name);   //成员函数原型

};

//定义Y类

class Y {

//声明本类的友元函数

//X类的disp()为本例的友元函数

friend void X::disp(Y py,char *name);

//普通函数putY() 为本例的友元函数

friend void putY(Y& yc,char *name);

private: //私有成员

int num;

dispY(char *name){

cout<

}

public: //公共成员函数

Y(int n){

num=n;

}

};

//X类成员函数的实现部分

void X::disp(Y py,char *name){

cout<

py.dispY(name);   //访问Y类的私有函数

}

//普通函数putY()的定义

void putY(Y& yc,char *name){

cout<

yc.dispY(name);

cout<

cout<

}

//在main()函数测试X和Y类的功能

main()

{

//创建Y和X类的对象

Y y1(100),y2(200);

X x;

//不可用Y类对象的私有成员函数显示

//y1.dispY(“y1″);

//y2.dispY(“y2″);

//调用X类对象的友元函数显示

x.disp(y1,”y1″);

x.disp(y2,”y2″);

//用getY函数显示Y类的对象显示

putY(y1,”y1″);

putY(y2,”y2″);

}// Example of the friend class

#include

//定义YourClass类,

class YourClass

{

//指定YourOtherClass是它的友元类

friend class YourOtherClass;

private:

int num;

public:

YourClass(int n){num=n;}

display(char *YCname){

cout<

cout<

}

};

//定义YourOtherClass,它是YourClass类的友元类

class YourOtherClass

{

public:

//使用YourClass类的私有成员

void disp1(YourClass yc,char *YCname){

cout<

cout<

}

//使用YourClass类的公共成员

void disp2(YourClass yc,char* YCname){

yc.display(YCname);

}

};

//在main()函数中创建和使用YourClass和YourOtherClass类对象

main(void)

{

//声明YourClass类对象

YourClass a(10),b(100);

//显示a和b对象的值

cout<

a.display(“a”);

b.display(“b”);

//声明YourOtherClass类对象

YourOtherClass temp;

//通过temp显示a和b对象的值

cout<

temp.disp1(a,”a”);

temp.disp2(b,”b”);

}

访问声明:

当为私有或为保护访问时,用using在子类中声明基类的公有成员后,在成员在子类中认为共有。

如果子类私有或保护继承自基类,那么此时子类的对象是不能调用基类公有的成员的。

class CBase

{

public print();

};

class CChild : private CBase

{

public:

using CBase::print(); //用了这句声明,main() is OK, 否则main中child 就不能调用print

}

void main()

{

CChild child;

child.print();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值