2008/7/29

新行業聯想

先講講格子趣

大家應該都知道他是租格子給別人寄賣東西的店
我第一次看到這種店的時候
我聯想到的是網路遊戲中拍賣所的實體化
再來想到的是拍賣網站的實體化

這告訴我們什麼?
虛擬世界的實體化,可以成為新行業

今天的重點是跑腿幫
我之前看到這個幫人排隊的工作時,沒有聯想到什麼東西

但是今天有聯想了

我聯想到的是網路遊戲中玩家向NPC接任務
任務需要跑很多地點
跟各種不同NPC講話
最後完成任務取得任務獎賞

再來想到的是許多奇幻小說中都會提到的傭兵團和冒險者工會
雇主可以在冒險者工會發包任務,提供任務獎賞
傭兵可以在冒險者工會接受任務,完成任務後取得任務獎賞

事實上,跑腿幫就是一個傭兵團...
目前社會還缺少一個冒險者工會

誰要來創一下新行業?

2008/7/27

c++ header 建立

現在有兩個class 互相使用對方的指標

我把全部的code 放在同一個檔案是可以編譯的

== 程式碼 ==

class B;

class A
{ 
 B* b;
 A方法的宣告
};

class B
{
 A* a; 
 B方法的宣告
};

A方法的實作
B方法的實作


== 換成.h 後 ==

A.h:
 #pragma once
 #include "B.h"
 class A
 {
  B* b;
  A方法的宣告
 };

B.h:
 #pragma once
 class A;
 class B
 {
  A* b;
  B方法的宣告
 };

A.cpp:
 #include "A.h"
 A方法的實作

B.cpp: 
 #include "B.h"
 B方法的實作

====

標頭檔編譯不能的錯誤訊息是:使用未定義的型別 A

請問該如何修改才能使標頭檔順利編譯?

PS:A方法會呼叫B方法或屬性
  B方法會呼叫A方法或屬性

====

解決方法1 by LPH66:
 在.cpp中兩個.h都#include進來

解決方法2 by adrianshum (Alien):
 a.h:
 #pragma once
 class B; //forward declaration
 #include "b.h"
 class A {
  private:
  B* b;
 };
 
 b.h:
 #pragma once
 class A; //forward declaration
 #include "a.h"
 class B {
  private:
  A* a;
 };

2008/7/23