作者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