C++クラス継承関連エラー対処法メモ

継承されるデストラクタはvirtualを付けて仮想関数にしておく。
付けていない場合、サブクラスのデストラクタは実行されないらしい。



サブクラスで定義しないとエラー→ virtual void func() = 0;
サブクラスで定義しなくても使える→ virtual void func(){};

後述の場合、サブクラスで定義し忘れることがあるので、場面によって使い分けるといいかも。



エラーメッセージで、"undefined reference to 'vtable for <クラス名>'"と出る場合は、仮想関数周りのエラー。
チェックする項目は、
1.サブクラスで定義されるべき関数が定義されているか。
2.空の仮想関数が virtual void func() = 0; のようになっているか。

※ virtual void func(); ではダメです。




エラーメッセージで、”there are no arguments to ‘(クラス名)’ that depend on a template parameter, so a declaration of ‘(メソッド名)’ must be available” と出る場合は、継承元のテンプレートクラスの中身が定義出来てないため。
対処方法は、参照元クラス名<T>::メソッド名、等の様にテンプレートの中身を定義した上で、メソッドを呼び出す。



<参考サイト様方>
http://blog.goo.ne.jp/cilsetyu/e/6fa586a70dac6336f62d3b83e5acaf8a
http://www5c.biglobe.ne.jp/~ecb/cpp/06_09.html
関連記事

comment

Secret

プロフィール

シロマ=ナノ

Author:シロマ=ナノ
参加予定イベント:
 ・C91 3日目西め28a

DIVA-AC:
 LV.199 白のシンフォニア

Flashカレンダー
Twitter
カテゴリ
最新記事
PCLクレジット
当ブログは、ピアプロ・キャラクター・ライセンス(http://piapro.jp/license/pcl)に基づいて、クリプトン・フューチャー・メディア株式会社のキャラクター 「初音ミク」「鏡音リン」「鏡音レン」「巡音ルカ」「Meiko」「Kaito」及びそれらに依拠して制作されたキャラクター「亞北ネル」「弱音ハク」を描いた作品を公開しています。
アクセスカウンター
検索フォーム
主な作品
WindowHelper(フリーソフト)
WindowHelperポップ

描いた絵・イラスト
リンク
バナー
当サイトはリンクフリーです。
バナーを使用したい場合は以下の画像をお使い下さい。
(リンク先に200x40サイズを置いてあります)

・通常版
banner

・ミク版
banner
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる