作者laechan (小太保)
看板mud_sanc
标题Re: justinj>你的文章里有乱码,请更改
时间Wed Apr 7 17:35:25 2010
> Q1.A,B两个档案里面都是function
> 若A里面有name,start,end等function
> B里面也一样...
> 那要如何叫出A里的start,B里的start..而不会混香..
这有两种情况,一个是 B inherit A,一个是 A 与 B 独立。
B inherit A 的情况,例如说 B 有 create 函数,A 也有
create 函数,然後 B 的某函数希望呼叫 A 而不是 B 的
create...
void test()
{
::create(); <= 这样就可以呼叫 A 的
最常见的就是一般房间或怪物,会看到一行 ::create(); 它
的用意就是先呼叫 ROOM(=/std/room.c 的 create),更正确
一点的说是先「代入」 ROOM 的 create()。
另一种情况就比较简单,假设..
A : /open/test1.c 里面有 start() 函数
B : /open/test2.c 里面也有 start() 函数
然後 B 有个函数叫 test()
void test()
{
call_other("/open/test1","start"); <= 这样就能呼叫 A 的 start 函数
另一种做法则是..
void test()
{
"/open/test2"->start();
Q2 跟 Q3 因为是乱码所以先不回。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.225.160.106
※ 编辑: laechan 来自: 61.225.160.106 (04/07 17:36)
1F:推 justinj :我看到的是没有...我修改了一下再看有没有.. 04/07 17:48
2F:→ justinj :了解..Q2主要是同一档案有没有简易叫法而已.. 04/07 17:49
3F:推 justinj :...那最後一种的"/open/test2"..是算object还是str? 04/07 17:57
4F:→ laechan :mudos 会把它当 ob 去看 04/07 17:59