C++友元

C++中的友元允许函数或类访问私有成员,友元函数非成员但能访问类的所有成员。友元声明不受访问控制符限制,但因破坏封装性应谨慎使用。友元类使得类A的所有函数成为类B的友元函数。
摘要由CSDN通过智能技术生成

友元:可以访问类的私有成员
友元函数:如果有一个函数是类A的友元函数,则该函数可以使用A中的所有成员
友元声明:在类中写上函数声明,在函数声明前加friend

使用注意:
1.友元的声明不受访问控制符限制,可以放在类的任意位置
2友元函数不是类的成员函数,是外部函数,没有this指针
3.友元破坏了类的封装性,慎用(尽量不用)

友元类:
如果类A是类B的友元类,则类A中所有函数都是类B的友元函数.

#include <iostream>

using namespace std;
class Address;
class Address
{
    friend class Student;
public:
    Address(const char *province,const char *city,const char *town,const char *street)
    {
        this->province = province;
        this->city = city;
        this->town = town;
        this->street = street;
    }

private:
    const char *province;
    const char *city;
    const char *town;
    const char *street;

};
class Student
{
public:
    Student(int id,const char *name,const char *province,const char *city,const char *town,const char *street):
        addr(province,city,town,street)
    {
        this->m_id = id;
        this->name = name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值