• C++ 友元函数


    C++ 友元函数

    类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。

    • 尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数,或者说不属于任何一个类。
    • 友元可以是一个函数,该函数被称为友元函数;
    • 友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元

    举例:

    #include <iostream>
    using namespace std;
    class DemoClass{
        private:
            int value;
        public:
            void setValue(int value){
                this->value = value;
            }
            friend void printValue(const DemoClass &demoClass);
    };
    void printValue(const DemoClass &demoClass)
    {
        cout << "friend's function: " << demoClass.value << endl;
    }
    int main(void)
    {
        DemoClass demoClass;
        demoClass.setValue(10);
        printValue(demoClass);
        return 0;
    }

    友元类frend class className需要定义在“被友元”的类中,当作成员

    #include <iostream>
    using namespace std;
    class DemoClass{
        private:
            int value;
        public:
        friend class FriendClass;
    };
    class FriendClass{
        public:
        void setValue(DemoClass &demoClass,int value)
        {
            demoClass.value = value;
            cout << "setValue success! " << endl;
        }
        void printValue(const DemoClass &demoClass)
        {
            cout<<"friend's Class's function: " << demoClass.value << endl;
        }
    };
    
    int main(void)
    {
        DemoClass demoClass;
        FriendClass friendClass;
        friendClass.setValue(demoClass,10);
        friendClass.printValue(demoClass);
        return 0;
    }

    参考:http://www.runoob.com/cplusplus/cpp-friend-functions.html

  • 相关阅读:
    分页查询
    web 开发中 405报错
    html 中input标签的name属性
    怎么样利用debug
    bzoj 1314: River过河 优先队列
    bzoj 4004: [JLOI2015]装备购买 拟阵 && 高消
    bzoj 1133: [POI2009]Kon dp
    bzoj 4127: Abs 树链剖分
    bzoj 2406: 矩阵 上下界网络流判定
    再写FFT模板
  • 原文地址:https://www.cnblogs.com/pzqu/p/9457626.html
Copyright © 2020-2023  润新知