whatis コマンドの -t オプションは、型の定義を表示します。 C++ については、whatis -t で表示されるリストは、テンプレート定義およびクラステンプレート例示を含みます。
型または C++ クラスの宣言を出力するには、次のように入力します。
(dbx) whatis -t type-orclassname
継承されたメンバーを表示するために、whatis コマンドは -r オプション (再帰を示します) を受け取ります。このオプションは、指定されたクラスの宣言を、そのクラスが基底クラスから継承するメンバーとともに表示します。
(dbx) whatis -t -r class-name
whatis -r の問い合わせからの出力は、クラス階層やクラスのサイズによっては長くなることがあります。出力の先頭には、階層のもっとも上にあるクラスから継承されたメンバーのリストが示されます。メンバーのリストは、コメント行によって親クラスごとに分けられます。
クラスの継承されたメンバーのルートを表示するために、whatis コマンドは、型定義のルートを表示する -u オプションを受け取ります。-u オプションを指定しないと、whatis コマンドは、値の履歴にある最後の値を表示します。これは、gdb で使用される ptype コマンドと同様です。
次の 2 つの例では、親クラス load_bearing_block の子クラスであるクラス table を使用しています。この親クラスはさらに、block の子クラスです。
-r を指定しないと、whatis は、クラス 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: /* from base 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(); // deleted several members from example protected: char *nm; int movable; int width; int height; class point position; class load_bearing_block *supported_by; Panel_item panel_item; /* from base 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; /* from 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); };