北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 8043|回复: 2

MUDOS修饰符全接触 by sunyc

[复制链接]
发表于 2004-3-13 07:17:03 | 显示全部楼层 |阅读模式
[原创]MUDOS修饰符全接触
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
隐含的函数,即使是本身物件也无法调用的函数。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2004-3-13 17:43:13 | 显示全部楼层

Re:MUDOS修饰符全接触 by sunyc

不错,写的很明白
简单易懂
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2004-3-18 22:06:21 | 显示全部楼层

Re:MUDOS修饰符全接触 by sunyc

实际上对于北侠现在的系统来说没有任何用处
如果有人对于这方便比较感兴趣可以尝试用更高版本的mudos
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-3-29 09:47 PM , Processed in 0.015979 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表