サンプル
class
MyClass {
public
:
int
publicVar;
int
publicFnc(){
//メンバーであることが必要
privateFnc();
return
privateVar;
}
int
member
Fnc
();
//メンバーである必要なし
protected
:
int
privateVar;
private
:
i
nt
privateFnc(){
return
privateVar; }
};
int
MyClass::memberFnc(){
publicFnc();
return
publicVar;
}
ソリューション
クラスをパラメーターとして受け入れるように関数を非メンバーにして、同じ関数を実行します。
class
MyClass {
public
:
int
publicVar;
int
publicFnc(){
//メンバーであることが必要
privateFnc();
return
privateVar;
}
protected
:
int
privateVar;
private
:
i
nt
privateFnc(){
return
privateVar; }
};
int
nonMemberFunction(
const
MyClass& mc){
mc.publicFnc();
return
mc.publicVar;
}