在我的类中:我想创建一个公共函数,该函数具有该类的私有成员的参数。并且能够从课外调用这个功能。C++ - 使用私有参数调用公共函数
类似的东西:
class MailToTerm
{
public:
MailToTerm();
int getPrivMax(intWithMax priv) {return priv.getMax();} //my public function
void initPrivMax(intWithMax priv) {return priv.initMax();}
void getMutexObjPriv(intWithMax priv) {return priv.GetMutexObj();}
void relMutexObjPriv(intWithMax priv) {return priv.RelMutexObj();}
private:
intWithMax cnter_multi_busy ;
intWithMax cnter_mono_busy ;
intWithMax cnter_light_busy ;
}
int main(){
MailToTerm* pt_MailToTerm = new MailToTerm();
int multi = pt_MailToTerm->getPrivMax(MailToTerm::cnter_multi_busy);
int mono= pt_MailToTerm->getPrivMax(MailToTerm::cnter_mono_busy);
}
它不工作,因为cnter_multi_busy被看作是“私人”,所以我不能访问它。 我该怎么办?
你不应该。 'private'专门用于你不想要的东西,但是课堂上正在进行。如果这不是你想要的,它可能不应该是私人的。 – cHao 2013-04-23 15:20:28
你真的想做什么? *任何*成员的通用访问者?你所采取的方法是错误的,在MailToTerm之外使用的'MailToTerm :: cnter_multi_busy'是**而不是'intWithMax',但是我甚至无法用简单的语句描述('&MailToTerm :: cnter_multi_busy')一个指向成员的指针,但是'MailToTerm :: cnter_multi_busy'只是一个合格的名字) – 2013-04-23 15:22:33
不要这么做。检查你的设计,你不应该私有化私人成员。这就是为什么他们是私人的 – SomeWittyUsername 2013-04-23 15:22:46