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
隐含的函数,即使是本身物件也无法调用的函数。