C/C++

(二十六)朋友成员/类的朋友

2018-11-04  本文已影响0人  RGiskard

引例

class Object
{
public:
    Object(int v) : value(v)
    {
        
    }
private:
    int value;
};

//定义全局函数Test
void Test(Object* p)
{
    printf("%d",p->value);//错误!!value是private的,不能被外部访问
}

怎么才能访问到呢?

朋友成员

在类中,用friend关键词可以将一个全局函数或另一个类修饰为该类的朋友

class Object
{
    friend void print(Object* p);
    
    friend class Base;  //将类Base声明为朋友
};
class Object
{
    friend void Print(Object* p);
public:
    Object(int v) : value(v)
    {
        
    }
private:
    int value;
};

void Print(Object* p)
{
    printf("%d",p->value);
};

friend的语法

缺点大于优点

上一篇 下一篇

猜你喜欢

热点阅读