zoukankan      html  css  js  c++  java
  • 友元

    对于类的私有成员只能在类的成员函数内部访问。这样虽然带来了数据隐藏上的好处,但会增加
     程序书写上的麻烦。为了折中考虑,C++中提供了友元的概念。
     
     友元:友元函数、友元类
     在定义一个类时可以把一些函数(包括全局函数和其他类的成员函数)声明为"友元" ,在友元函数
     内部就可以访问类对象的私有成员。
         将其它类的成员函数声明为友元的写法:
             friend 返回值类型 其他类的类名::成员函数名(参数表);
      但是不能将其它类的私有成员函数声明为友元。

    class CDriver{
        public:
            void ModifyCar(CCar *pCar);
    };
    
    class CCar{
        private:
            int price;
        // 声明友元
        friend int MostExpensiveCar(CCar *car, int total);
        friend void CDriver::ModifyCar(CCar *pCar); 
    }; 

      一个类可以将另一个类声明为自己的友元,这样这个类的私有成员就可以被另一个类访问

    class CCar{
        private:
            int price;
            
        // 声明为友元类 
        friend class CDriver;  
    }; 
    
    class CDriver{
        public:
            CCar myCar;
            void ModifyCar(){
                myCar.price += 2000;
            }
    };
  • 相关阅读:
    Codeforces Round #601 (Div. 2)
    A. A Serial Killer
    B. Sherlock and his girlfriend
    Codeforces Round #600 (Div. 2)
    Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) C. Magic Grid
    7213:垃圾炸弹
    2011
    Educational Codeforces Round 46 (Rated for Div. 2)
    Stall Reservations
    Pots
  • 原文地址:https://www.cnblogs.com/lnlin/p/7587990.html
Copyright © 2011-2022 走看看