範例
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;
}