C++ 6.オペレータリロード

776 ワード

リロード構文:戻り値タイプoperatorオペレータ(パラメータリスト)
オペレータの再ロードを最上位関数で行います.
少なくとも1つのパラメータがクラスである必要があります.そうしないと、コンパイラはリロードされたオペレータかどうかを判別できません.
クラスメンバー関数のオペレータリロード
//                    ,                 ,           
//                           。
//        ,          

//  
int operator+(const C& c){

}
//  
a=b+c//   a=b.operator+(c);

友元friend
クラスのfriendは、クラスのprivateおよびprotectedメンバーにアクセスできます.クラスのメンバー関数ではないので、クラスのどこに置いてもいいです.
class C{
    friend int f(){}//    
};


class C{
    friend D::f(){}//         
};


class C{
    friend class D;//         
};

//                ,                  

friend関係は一方向で、伝達できない.
friendはクラスのメンバーではないがクラスのprivateとprotectedにアクセスでき,オブジェクト向けの性質を破壊する.オペレータリロードでのみ使用することを推奨します