zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    centos7+php7.1.4+mysql5.7+swoole搭建
    鄙视自己(转)
    Mysql的sql优化概念---三大范式
    PHP的设计模式-单例设计
    Composer的安装使用
    PHPstorm的一些快捷键
    论代码走查的重要性
    Java泛型读书笔记 (三)
    Java泛型读书笔记 (一)
    Java泛型读书笔记 (二)
  • 原文地址:https://www.cnblogs.com/pzqu/p/9457626.html
Copyright © 2011-2022 走看看