背景:
阅读文章

MUDOS修饰符全接触

[日期:2009-06-20] 来源:  作者:sunyc [字体: ]

MUDOS中现在存在的所有修饰符一共有以下几种
在v22pre11版本中
====变量修饰符=====
static nomask
====函数修饰符=====
vargars nomask public private static
在v22.2及后继版本中
====变量修饰符=====
nosave nomask
====函数修饰符=====


vargars nomask public private protected hidden

很显然v22.2中将static分开,变成两个新的修饰符,从而解决了原本意思模糊的
问题。
下面具体讲解。
====变量修饰符=====
1.static
该修饰符字面意思是静态的,也就是说不会受save_object()和restore_object()的
影响.
比如说我有一个全局变量 int a=1;如果我save_object()的时候将会把a=1存进去
,restore的时候会把a的值读出来。而且,要注意的是,如果.o文件中没有a的值
,a将重新被赋默认值0,但是我如果声明时 static int a=1;则save的时候不会存
1,restore的时候也不会被摧毁.
2.nomask
该变量不能被inherit他的物件重定义,和用在函数上类似。
====函数修饰符=====
1.vargars
这个修饰符表示这个函数的参数可以缺少一个或者全部,当缺失某个参数时,该参
数为0.
例:
vargars test(int a,int b,int c)
{}
我调用
test (1) 时 a=1 b=0 c=0
test (1,1) a=1 b=1 c=0
test (1,1,1) a=1 b=1 c=1

2.nomask
该修饰符的意思为不可覆盖的。
举例说明
//object a
nomask test(){xxxx}
//object b
inherit a;
test()
{
xxxx
}
编译b的时候将给出错误。因为test()已经在inherit说明了是nomask的,是不可被
覆盖的。
3.public private
这两个是函数调用控制
//object a
private test();
public test1();

test1可以被include 或者 inherit a的函数调用,而test只能由a本身进行调用。
否则将会出出错
4.protected
无法被继承的函数,更无法被覆盖。
5.hidden
隐含的函数,即使是本身物件也无法调用的函数。

收藏 推荐 打印 | 录入:sbso | 阅读:
相关内容       MUDOS 
本文评论   [发表评论]   全部评论 (0)
内容推送
52mud提供
收听52mud微信公众平台
52mud官方微信公众平台
热门评论