LPC inherit 叙述:

语法: inherit 档案完整路径名;

说明:
    档案完整路径名 要用双引号括起来. 如:
     	inherit "/std/user.c"
    通常, 常用的"被继承"物件会由系统用 #define 定义常数, 如
        #define USER_OB "/std/user.c"
    那么, 就可以用
	inherit USER_OB;
    
    inherit 叙述提供 LPC 继承的能力, 没错, 就是 OOP 的概念, 继承让物件
  可以很安全跟很方便的使用其他物件所定义的函数跟变数. 由于 MudOS 驱动
  程式内部会储存整体变数, 然后把档案分开编译, 因此各个物件可以彼此分享
  已经编译好的物件, 当然, 这些物件彼此有自己的整体跟局部变数可以使用,
  例如: 物件 A, B, 都继承 C, 编译 A 或 B 的时候不会让编译器重新编译 C,
  不过, 如果 A 或 B 有重新定义整体变数的话, 不会引起重复定义的错, 但是
  在 A 或 B 中会让 C 的整体变数失效, 也就是 A 或 B 的宣告会"盖过" C 中
  的宣告, 如果没有在 A 或 B 中重复宣告的话, 当然就会使用 C 的宣告啰.
  还有, 上述的重复宣告并不影响 C 自己的变数.

    现在再假设 A 继承了 B, 物件 A 可以定义跟物件 B 中相同名称的函数或变数,
  如前所述, A 的引用会自动"盖过" B 的, 不过如果只是这样的话, 继承就不会那
  么特殊了. 如果你因为同名, 又想引用 B 的函数或变数, 可以使用 '::' 来引用.
  例如 A 继承了 B, 而且两个都各自定义 query_long(); 在 A 使用 query_long()
  的时候, 是使用到 A 定义的函数, 如果要在 A 使用 /std/ 的 query_long(),
  那就可以用 B::query_long(); 不过, 如果是同名变数的引用, 则只能透过 B 中
  定义的函数来存取, 这是为了物件的概念产生的.
    此外, B 可以选择是否要让别的物件继承函数或整体变数, 禁止的方式是以
  static 来修饰函数或变数.
    另外一点, 如果 B 重新编译的化, A 也只会用到旧的 B, 除非 A 在 B 之后也
  重新编译过.

    这儿允许多重继承, 也就是说, 在一个物件内可以写多行的 inherit 叙述. 假
  设 special.c 继承 weapon.c 跟 armor.c, 而 weapon.c 跟 armor.c 也都提供
  了自己的 query_long(), 假设要让 special.c 有时像 weapon, 有时像 armor,
  要像 weapon, 就可以用 weapon::query_long(), 要让它像 armor 就用
  armor::query_long(), 要有自己的 long, 就直接定义 query_long() 并直接呼
  叫来用. '::' 又称为 "引用子", 或是 "视域子", 也就是让你引用祖先的函数,
  或者把函数加上适当的视域范围, 这样就不会"用错", 也就是不会让编译程式
  "看错", 所以称为"视域子".

    请继续参考跟 修饰子 有关的说明. 那边会有如何隐藏函数跟变数宣告的说明
    (在前面有提到 static 这个修饰子).
