关于C++中友元类和友元函数的示例讲解
2012-10-10 16:44
363 查看
来自:
http://blog.csdn.net/wbj1234566/article/details/2256642 简单的讲 :把类外部的类或函数声明为友元类和友元函数,使其能直接访问类中的私有成员。
格式: friend 类 或 函数 声明
//此语句可以放在类中的任意位置,与访问权限保留字无关。
需要注意几个方面:
1.友元关系是不可以传递的。
比方说你是我的友元而Joe是你的友元,但这并不意味着Joe是我的友元。
2.友元关系不能继承。
3.友元关系不是互通。
把class A设置为class B的友元并不会使得class B成为class A的友元,也许你愿意把你的秘密告诉我,但是,这并不意味着我愿意把我的秘密告诉你。
具体的用法详细见下面的示例:
#include <cstdlib>
#include <iostream>
using namespace std;
class Radius
void Show_r(Radius &n)
class Circle
int main(int argc, char *argv[])
{
Radius objRadius(9);
Circle objCircle;
Show_r(objRadius);
cout<<"面积为:"<<objCircle.area(objRadius)<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
http://blog.csdn.net/wbj1234566/article/details/2256642 简单的讲 :把类外部的类或函数声明为友元类和友元函数,使其能直接访问类中的私有成员。
格式: friend 类 或 函数 声明
//此语句可以放在类中的任意位置,与访问权限保留字无关。
需要注意几个方面:
1.友元关系是不可以传递的。
比方说你是我的友元而Joe是你的友元,但这并不意味着Joe是我的友元。
2.友元关系不能继承。
3.友元关系不是互通。
把class A设置为class B的友元并不会使得class B成为class A的友元,也许你愿意把你的秘密告诉我,但是,这并不意味着我愿意把我的秘密告诉你。
具体的用法详细见下面的示例:
#include <cstdlib>
#include <iostream>
using namespace std;
class Radius
void Show_r(Radius &n)
class Circle
int main(int argc, char *argv[])
{
Radius objRadius(9);
Circle objCircle;
Show_r(objRadius);
cout<<"面积为:"<<objCircle.area(objRadius)<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
相关文章推荐
- 关于C++中友元类和友元函数的示例讲解
- 关于C++中友元类和友元函数的示例讲解
- C++中友元类和友元函数的示例讲解
- 关于JAVA中状态设计模式的讲解示例代码
- 三、Java基础---------关于继承、构造函数、静态代码块执行顺序示例讲解
- Spring MVC 入门示例讲解
- [收藏]一个广为流传的关于项目管理的通俗讲解
- 几个关于正确及错误PL/SQL对照使用的示例
- 一个广为流传的关于项目管理的通俗讲解
- Asp.net简单ORM示例源码详细讲解一
- 关于python MRO __init__,__new__的讲解,super
- 北科大-关于mos驱动的讲解
- 算法4中 1.4节示例中运行次数的讲解
- react-router-dom示例讲解(三)——认证功能
- Android应用开发中Fragment与Activity间通信示例讲解
- 关于 友元函数 的 种种
- 关于卷积的一个血腥的讲解,看完给…
- 从头到尾讲解EJB MDB(消息驱动bean)四——示例代码
- mybatis拦截器实现分页功能的示例讲解
- 关于java调用.Net WCF服务的讲解(一)