C++ 6.オペレータリロード
776 ワード
リロード構文:戻り値タイプoperatorオペレータ(パラメータリスト)
オペレータの再ロードを最上位関数で行います.
少なくとも1つのパラメータがクラスである必要があります.そうしないと、コンパイラはリロードされたオペレータかどうかを判別できません.
クラスメンバー関数のオペレータリロード
友元friend
クラスのfriendは、クラスのprivateおよびprotectedメンバーにアクセスできます.クラスのメンバー関数ではないので、クラスのどこに置いてもいいです.
friend関係は一方向で、伝達できない.
friendはクラスのメンバーではないがクラスのprivateとprotectedにアクセスでき,オブジェクト向けの性質を破壊する.オペレータリロードでのみ使用することを推奨します
オペレータの再ロードを最上位関数で行います.
少なくとも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にアクセスでき,オブジェクト向けの性質を破壊する.オペレータリロードでのみ使用することを推奨します