C++ 友元函数 类和实例

TV a;
在定义a的同时,因为TV中间i的定义,相当于同时定义了a.i这个变量。因为它是私有的,所以不能直接访问;友元类不受这个限制。但要访问的话,至少得先有这样一个实例:
比如在Tele里面加上这个函数:
class Tele
{
public:
int func2(const TV &a)
{
    cout<<a.i<<endl;
    return a.i;
}
...
friend class TV;
};
然后定义了变量:
TV a;
Tele b;
就可以
b.func2(a);
来访问a.i这个变量了。
总结地来说,类定义的是数据的结构,而非真正的变量,只是一个逻辑上的概念;而定义类的变量(一般叫做实例),这个过程中才真正分配了内存空间,定义出了实在可访问的数据。
属于同一个类的两个对象是产生出来的类的两个不同的实例,显然不能互相访问私有成员变量
有相同的属性和方法是不错,不过它只能访问自己的成员变量,不能访问其他实例的成员变量
一个类的私有成员连它派生出来的子类都无法访问,其他类更不能访问,你可以定义另一个类B,然后把B声明为作为cCat的friend,那么b的对象就可以访问cCat的函数,但是不能访问cCat对象的东西。这个问题这么理解,就像是家庭是一个类,假设A,B都是家庭的实例,A家庭可以访问B家庭的老婆吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值