C**语言特性介绍(3) --- 敌元函数
来源:互联网 发布:北纬自动交易软件 编辑:程序博客网 时间:2024/06/12 19:51
在C++中有个概念叫友元,友元函数可以直接访问类的私有成员,通过使用友元函数,我们可以指定某些函数拥有对当前类的特权,就好象是"朋友"一样,比如下面的例子。
编译时发生错误:
$ make
g++ -c main.cpp
main.cpp: In function `int fun1(Class1&)':
main.cpp:9: error: `int Class1::value' is private
main.cpp:13: error: within this context
make: *** [main.o] Error 1
因为声明为友元函数的那行被注释掉,因为一般的函数是无法访问类的私有成员的,所以编译无法通过。
这次我们要介绍的是敌元函数,你可能定义一些公有成员,但是却因为某些原因不想让某个函数访问到这个类的公有成员,这时候你可以使用敌元函数。
敌元函数的标签是:"enemy:"
程序如下:
这样编译是无法通过的,虽然Class1的value成员是公有的,但是函数fun1被声明为敌元,所以fun1无权访问Class1的公有成员。
$ make
g++ -c main.cpp
main.cpp: In function `int fun1(Class1&)':
main.cpp:10: error: `int Class1::value' regard int fun1(Class1&) as enemy
main.cpp:14: error: within this context
make: *** [main.o] Error 1
注:目前C**语言还没有得到任何编译器的支持,文中出现的大部分C**代码都是无法运行的。
- C**语言特性介绍(3) --- 敌元函数
- C**语言特性介绍(2) --- 函数间跳转
- C语言特性(函数)
- C**语言特性介绍(1) --- 自乘操作符
- C**语言特性介绍(4) --- 多返回值
- C**语言特性介绍(5) --- 垃圾回收
- C**语言特性介绍(6) --- forever语句
- C**语言特性介绍(7) --- pure关键字
- C**语言特性介绍(8) --- 0b前缀
- C 语言中的函数介绍
- C语言特性(函数与指针)
- 友元函数(C++)
- 面试旧敌之红黑树(直白介绍深入理解)
- [Objective-C]C语言特性(函数,变量,编译指令,指针,块)
- friend 友元函数(C++语言)
- c语言与lua交互(capi)介绍, lua调用C语言函数详解(一)
- c语言与lua交互(capi)介绍, lua调用C语言函数详解(二)
- C语言图形函数介绍篇
- sicily1317_数独
- 东浦的面试
- Overload和Override的区别
- equals和==的区别
- Linked List
- C**语言特性介绍(3) --- 敌元函数
- 为什么要创建索引呢
- Jquery 常用方法一览表(集合)
- 触发器定义
- 如何查看USB设备
- ms tts5.1
- 算法之……二叉树的查找
- Android核心模块及相关技术(宏观上了解Android)
- 25.211(840)——阅读笔记II