首页 > 代码库 > 友元——友元可以访问与其有好友关系的类中的私有成员。 友元包括友元函数和友元类。
友元——友元可以访问与其有好友关系的类中的私有成员。 友元包括友元函数和友元类。
简介:友元可以访问与其有好友关系的类中的私有成员。
友元包括友元函数和友元类。
【1】将普通函数声明为友元函数
#include<iostream>using namespace std;class Time{ public: Time(int,int,int); friend void display(Time &);//定义友元函数 private: int hour; int minute; int sec;};Time::Time(int h,int m,int s){ hour = h; minute = m; sec = s;}void display(Time&t){ cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;}/*由于声明了display Timedisplay是Time friend函数,所以Time display函数可以引用Time display Time中的私有成员 hour,minute,sec。 但注意在引用这些私有数据成员 hour,minute,sec时,必须加上对象名,不能写成 cout<<hour<<′′:′′<<minute<<′′:′′<<sec<<endl; */int main(){ Time t1(10,13,56); display(t1); return 0;}
【2】一个函数(包括普通函数和成员函数)可以被多个
类声明为“朋友”,这样就可以引用多个类中的私有
数据
#include<iostream>using namespace std;class Date;class Time{ public: Time(int,int,int); void display(Date &);//display 是成员函数,形式参数date类的 private: int hour; int minute; int sec;};class Date{ public: Date(int,int,int); friend void Time::display(Date&);//声明time中的display函数为友元函数 private: int month; int day; int year;};Time::Time(int h,int m,int s){ hour = h; minute = m; sec = s;}void Time::display(Date &d){ cout<<d.month<<"/"<<d.day<<"/"<<d.year<<endl;//引用date类的私有数据 cout<<hour<<":"<<minute<<":"<<sec<<endl;//引用本类中的私有数据}Date::Date(int m,int d,int y){ month = m; day = d; year = y;}int main(){ Time t1(10,13,56); Date d1(12,25,2004); t1.display(d1); return 0;}
友元比较好的博客推荐:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。