今天看了友员函数和成员函数区别
来源:互联网 发布:mac mini 固态硬盘 编辑:程序博客网 时间:2024/04/27 13:51
这是网络上说的最多的例子:
“类的友员函数可以直接访问该类的所有成员,但它不是成员函数,可以象普通函数一样在任何地方被调用”
这样看上去,友员函数与成员函数的区别就仅仅在于友员函数可以在任何地方被调用,于是我写了下面的代码:
class CDemo
{
private:
int m_a;
public:
friend void ShowMsg(void);
int Get_m_a() const;
void Set_m_a(int a);
};
void ShowMsg(void)
{
cout << "m_a=" <<m_a <<endl;
}
....................
无法通过编译,显示m_a没有定义。
看看这几句话:
3)友元函数不能直接访问类的成员,只能访问对象成员,
4)友元函数可以访问对象的私有成员,但普通函数不行;
5)调用友元函数时,在实际参数中需要指出要访问的对象,
看来,友员函数与成员函数的区别不只是调用规则不同,友员函数需要传其本类对象的参数,与其他非友员非成员函数相比,它多了可以直接:对象.私有数据 的功能
修改后的代码运行正常;
class CDemo
{
private:
int m_a;
public:
friend void ShowMsg(CDemo &demo);
int Get_m_a() const;
void Set_m_a(int a);
};
void ShowMsg(CDemo &demo)
{
cout << "m_a=" <<demo.m_a <<endl;
}
- 今天看了友员函数和成员函数区别
- 成员函数,友员函数和一般函数之区别
- 第七周项目训练1 成员函数,友员函数和一般函数区别
- 项目1-成员函数,有员函数和一般函数的区别(1)
- 成员函数友员函数与一般函数有区别(1)
- 成员函数友员函数与一般函数有区别(1)外部
- 运算符重载的成员函数和有员函数
- 可不可以这样统一地看待友员函数和成员函数?
- 实验名称: 类的构造函数、析构函数和友员成员应用
- 第五周项目4——员函数、友元函数和一般函数有区别
- 成员函数,友元函数和一般函数之区别
- 成员函数,友元函数和一般函数的区别
- 成员函数友元函数和一般函数的区别
- 成员函数、友元函数和一般函数之区别
- 成员函数、友元函数和一般函数之区别
- 成员函数,友元函数和一般函数有区别
- 成员函数、友元函数和一般函数有区别
- 成员函数、友元函数和一般函数有区别
- java float double精度为什么会丢失?浅谈java的浮点数精度问题
- windows7光驱找不到的解决办法
- 即时通讯工具
- 局域网即时通信软件
- 引用与using之间的关系
- 今天看了友员函数和成员函数区别
- TOR "Could not bind to,127.0.0.1:9050: under ubuntu
- 小小游戏程序员工作一年加九个月后的工作总结
- CFA Notes第二遍
- Linux环境进程间通信--共享内存(下)
- 使用宏技巧
- 20100227-002-OPM3的组成
- 一些关于MathType的快捷键的使用
- Ubuntu命令行配置网络 转自:http://wiki.guoshuang.com/Ubuntu命令行配置网络