型または C++ のクラスの宣言を出力するには次のようにします。
(dbx) whatis -t type_or_class_name
whatis コマンドには、継承されたメンバーを表示するための -r (再帰) オプションが用意されています。このオプションを指定すると、指定したクラス class_name の宣言とともに、そのクラスが親クラスから継承したメンバーが表示されます。
(dbx) whatis -t -r class_name
whatis -r による出力は、クラス階層と各クラスのサイズによって長くなることがあります。出力の先頭には、階層の最も上にあるクラスから継承されたメンバーのリストが示されます。メンバーのリストは、コメント行によって親クラスごとに分けられます。
ここに、2 つの例を示します。table クラスは、load_bearing_block クラスの子クラスの 1 つです。また、load_bearing_block クラスは、block の子クラスです。
-r を指定しないと、table クラスで宣言されているメンバーが示されます。
(dbx) whatis -t class table class table : public load_bearing_block { public: table::table(char *name, int w, int h, const class point &pos); virtual char *table::type(); virtual void table::draw(unsigned long pw); };
次に、子クラスが継承するメンバーを表示するために whatis -r がその子クラスで使用された場合の結果を示します。
(dbx) whatis -t -r class table class table : public load_bearing_block { public: /* 基底 class table::load_bearing_block::block から */ block::block(); block::block(char *name, int w, int h, const class point &pos, class load_bearing_block *blk); virtual char *block::type(); char *block::name(); int block::is_movable(); // exampleprotected から削除されたいくつかのメンバー: char *nm; int movable; int width; int height; class point position; class load_bearing_block *supported_by; Panel_item panel_item; /* 基底 class table::load_bearing_block から */ public: load_bearing_block::load_bearing_block(); load_bearing_block::load_bearing_block(char *name, int w, int h, const class point &pos, class load_bearing_block *blk); virtual int load_bearing_block::is_load_bearing(); virtual class list *load_bearing_block::supported_blocks(); void load_bearing_block::add_supported_block(class block &b); void load_bearing_block::remove_supported_block(class block &b); virtual void load_bearing_block::print_supported_blocks(); virtual void load_bearing_block::clear_top(); virtual void load_bearing_block::put_on(class block &object); class point load_bearing_block::get_space(class block &object); class point load_bearing_block::find_space(class block &object); class point load_bearing_block::make_space(class block &object); protected: class list *support_for; /* class table から */ public: table::table(char *name, int w, int h, const class point &pos); virtual char *table::type(); virtual void table::draw(unsigned long pw); };