首页天道酬勤scanf函数(静态成员函数)

scanf函数(静态成员函数)

admin 12-04 11:37 199次浏览

1)在C中引入了friend函数,为这个类的外部访问(除了他自己)提供了一个窗口;

2)这个friend函数不属于这个类的成员函数,而是一个在类外定义的普通函数。

只需声明函数可以直接访问类中的私有或受保护成员。

使用好友功能注意事项:

类使用关键字friend修饰friend函数,但这个函数不是类的成员函数,它的声明可以放在类的私有部分,也可以放在公共部分。友元函数的定义在类外实现,不需要增加类限定。一个类中的成员函数可以是另一个类的友元函数,一个函数可以是多个类的友元函数。Friend函数可以访问类中的私有成员和其他数据,但是数据成员不能直接用于访问,需要引用对象。友函数在调用上和一般函数一样,不需要引用对象。比如下面的形式:这里,解释一下上面第1、3、4点的用法,并理解它们。

# include iostream # include cstring使用命名空间标准;class persion { public : persion(char * pn);//好友功能;friend void setweighth(persion p,int h);//注意参数列表中通常有一个引用类型的参数。原因请参考上面的使用要点3和4。void disp();//类成员函数private : char name[20];体重,年龄;};person :3360 persion(char * pn)//constructor { strcpy(name,pn);weighth=0;} void pers : disp(){ cout name '-' weightendl;}//friend函数的具体实现:这里没有类限定,比如(perion:setweigth),可以和上面的disp()比较。属于类的成员是合格的,但是不属于类的成员函数是不合格的。void setweighth(persion pn,int w){strcpy(pn.name,pn);//实现字符串复制pn。重量=w;//私有成员数据赋值} void main(){ persistence p(' Zhan San ');//调用setweigth(),与一般函数调用一致。setweigth(第60页);p . disp();//调用类的成员函数。}为了使用要点2,我给出一个代码示例:

# include iostream # include cstring使用命名空间标准;级轮;class car { public : car(char * pn);空跑(车轮w);//成员函数,使轮子类中的朋友函数实现private : char name[20];};car : car(char * pn){ strcpy(name,pn);} class wheel { public : wheel(int s);朋友void car:run(车轮w);//这里把汽车类的成员函数做成朋友函数。private:内部速度;};wheel : wheel(int s){ speed=s;}int main(int argc,char const * argv[]){ wheel w(60);c车(‘新车’);c . run(w);返回0;}实现Voidcar:3360Run(车轮w)//car类成员函数{cout '汽车正在运行' endlcout ' name : ' name ' speed : ' w . speed endl;}

win7如何禁用ie加载项
python 迭代器(python -m) 专题辅导(辅导机构讲座主题)
相关内容