友元会将类的内部暴露给其他类或函数,破坏类的抽象性原则,只在有限情况下使用
使用实例:
[cpp] view plaincopy
#include
#include
using namespace std;
//提前声明类
class studentTwo;
//可以当做一个普通类
class studentOne
{
private:
int _num;
string _name;
public:
//构造函数和普通函数除了返回值得区别
studentOne(int num,string name):_num(num),_name(name){}
//传递参数是另外类的引用 声明函数加 ; 不要{}
void display(studentTwo &);
};
class studentTwo
{
private :
int _num;
string _name;
public :
studentTwo(int num,string name):_num(num),_name(name){}
//要调用另外一个类中函数 可以申明为友元函数 不过将类对象传递过去
friend void studentOne::display(studentTwo &);
};
//友元函数的定义
void studentOne::display(studentTwo &two)
{
cout<<"two name num: "<
<<"one name num: "<<_name<<" "<<_num<
};
int main(){
studentOne one(100,"buyingfei");
studentTwo two(110,"buyafei");
one.display(two);
return 0;
}
阅读(394) | 评论(0) | 转发(0) |