C++总结笔记(五)友元函数
2013-05-26 03:23
344 查看
如果A类中的函数想要访问B类中的成员,那么A中的该函数必须是B类中的友元函数。
为了使其他的成员函数直接访问类中的私有变量,即允许外面的类或者函数能访问该的私有变量或者受保护的变量,从而使两个函数共享一个函数。
提高效率,但是破坏了类的封装性,一般在操作符重载的时候可以用。
#include<iostream>
#include<string>
using namespace std;
class People
{
public:
People(string name):n(name){};
friend void getName(People p);
private:
string n;
};
void getName(People p)
{
cout<<p.n<<endl;
}
class Li;
class Wang
{
public:
Wang(string);
void display(Li &);
private:
string name;
};
Wang::Wang(string n)
{
name = n;
}
class Li
{
public:
Li(string);
friend void Wang::display(Li &);
private:
string name;
};
Li::Li(string n)
{
name = n;
}
void Wang::display(Li &l)
{
cout<<l.name<<endl;
}
int main()
{
People p("HCJ");
getName(p);
Wang w("WANG");
Li l("Li");
w.display(l);
}
为了使其他的成员函数直接访问类中的私有变量,即允许外面的类或者函数能访问该的私有变量或者受保护的变量,从而使两个函数共享一个函数。
提高效率,但是破坏了类的封装性,一般在操作符重载的时候可以用。
#include<iostream>
#include<string>
using namespace std;
class People
{
public:
People(string name):n(name){};
friend void getName(People p);
private:
string n;
};
void getName(People p)
{
cout<<p.n<<endl;
}
class Li;
class Wang
{
public:
Wang(string);
void display(Li &);
private:
string name;
};
Wang::Wang(string n)
{
name = n;
}
class Li
{
public:
Li(string);
friend void Wang::display(Li &);
private:
string name;
};
Li::Li(string n)
{
name = n;
}
void Wang::display(Li &l)
{
cout<<l.name<<endl;
}
int main()
{
People p("HCJ");
getName(p);
Wang w("WANG");
Li l("Li");
w.display(l);
}
相关文章推荐
- C++友元函数的使用学习笔记
- 友元函数C++笔记四:友元
- C/C++学习笔记9:sizeof总结
- C++ 学习笔记(一些新特性总结 1)
- 关于C++中的友元函数的总结
- C++总结 友元类和友元函数(转)
- C++友元函数总结
- C++总结笔记(七)排序算法之插入排序
- C++总结 友元类和友元函数
- c++学习笔记 友元函数与友元类s
- c++高级---C_C++的union的学习笔记总结
- C++学习笔记:友元函数和友元类
- 关于C++中的友元函数的总结
- 关于C++中的友元函数的总结
- 关于C++中的友元函数的总结
- C++ 面向对象的笔记总结
- C++ 牛客网做题笔记【1100题总结】
- C++总结 友元类和友元函数
- boolan微专业C++课程第一讲笔记总结
- 笔记:C++中static的作用总结