C++ 友元
来源:互联网 发布:牛客网 大数据面试题 编辑:程序博客网 时间:2024/05/17 06:15
友元会将类的内部暴露给其他类或函数,破坏类的抽象性原则,只在有限情况下使用
一定要定义好函数 和类的位置
友元函数使用实例:
#include <iostream>#include <string>using namespace std;//提前声明类class student;class grade{private :int _grade;public :grade(int grade):_grade(grade){} void display(student &);};//可以当做一个普通类class student{public:int _num;string _name; //构造函数和普通函数除了返回值得区别student(int num,string name):_num(num),_name(name){}//要调用另外一个类中函数 可以申明为友元函数 不过将类对象传递过去 friend void grade::display(student &);};//友元函数的定义void grade::display(student &two){ cout<<"student name num grade: "<<two._name<<" "<<two._num<<" "<<this->_grade<<endl;};int main(){ student stu(100,"buyingfei"); grade gra(100); gra.display(stu); return 0;}
运行结果:友元类使用:
#include <iostream>#include <string>using namespace std;//可以当做一个普通类class student{private:int _num;string _name;public: friend class grade; //声明为友元类 则在本类中可以调用声明友元类中成员 //构造函数和普通函数除了返回值得区别student(int num,string name):_num(num),_name(name){}//传递参数是另外类的引用 声明函数加 ; 不要{}void display(grade &);};class grade{private :int _grade;public :grade(int grade):_grade(grade){};int get(){return this->_grade;}};//友元函数的定义void student::display(grade &two){ cout<<"student name num grade: "<<this->_name<<" "<<this->_num<< " "<<two.get()<<endl;};int main(){ student stu(100,"buyingfei"); grade gra(100); stu.display(gra); return 0;}
运行结果:
- C++(一)友元
- [C++]友元学习
- [c++]友元函数
- [c++] 友元详解
- 【C++】友元函数
- c++:友元函数
- C++:友元函数
- C++:友元
- C/C++ 友元
- 【C++】友元函数
- C++:友元
- C++----友元
- 【C++】C++友元
- C++_友元函数
- C++_友元函数
- C++_友元函数
- C++_友元函数
- C++_友元函数
- 推荐系统的循序进阶读物(从入门到精通)
- 友盟社会化分享最新3.1(微信,朋友圈)--------源于网络,分享网络
- codeforces 365A——Good Number
- mono touch中去掉NavigationBar的底部阴影
- 系统调用的实现
- C++ 友元
- Divide Two Integers
- sqlite3 使用
- 学生表 课程表 成绩表 教师表 50个常用sql语句
- tomcat自动部署的设置
- 本地连接不能用,修复tcp/ip协议
- Qt事件机制详解
- php二维数组排序
- (13)和为s的连续正数序列