検索結果 4 件
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: TCHARなどの解説がほしい
- 返信数: 1
- 閲覧数: 2025
TCHARなどの解説がほしい
C, C++ で Windows のプログラムを作成しています。 これまでいろいろ悩まされたことから、文字セットやTCHARなどの概念と扱いを一度しっかり理解しておきたいと思っています。 詳しい(わかりやすい)解説のあるwebサイトや書籍など教えていただけないでしょうか。 現在、マルチバイト文字セットとワイド文字セットの違いや、TCHARなどがunicode定義の有無によってそれらを使い分けていることくらいは理解しています。 別の型の文字列への変換もなんとかできているので、今すぐに困っているわけではありません。 理解できていない(今気になっている)のは、以下のようなことです。 ・TCHARのT...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++仮想関数のコンパイルエラー
- 返信数: 4
- 閲覧数: 4060
Re: C++仮想関数のコンパイルエラー
解説ありがとうございます。 すっきりしました。 ご指摘の通りで、public継承のつもりで書いていました。 private継承というのを全然考えていませんでした。 今回の場合はpublic継承でオーバーライドするのが実際にやりたいことだったのですが、 コンパイルエラーが出なかったので、その関数を呼び出すまでは問題ないのかとか、 あるいはサブクラスでの関数定義がないときはスーパークラスのほうを使うのか、などと思ってしまいました。 定義がないから呼び出せないしクラスのインスタンス化もできない、というので理解しました。 (エラーメッセージがわかりにくいような……) まだクラスの扱いに慣れないので、ま...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++仮想関数のコンパイルエラー
- 返信数: 4
- 閲覧数: 4060
Re: C++仮想関数のコンパイルエラー
返信ありがとうございます。 とりあえず、エラーは解消できました。 スーパークラスでvirtual宣言、定義した関数で、 サブクラスで宣言だけして実装していないものが1つありました。 サブクラスの関数定義を書いてやることで、エラーはなくなりました。 スーパークラスでの定義が不足しているのだとばかり思って悩んでいました……。 しかし、再現しようと思ってコードを書いてみたのですが、以下のコードではコンパイルしてもエラーにならないんですね。 class BASE { public: virtual int f(); virtual int g(); }; int BASE::f() { return ...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++仮想関数のコンパイルエラー
- 返信数: 4
- 閲覧数: 4060
C++仮想関数のコンパイルエラー
C++を勉強中です。
あるクラス内でvirtual関数を定義した場合、それを継承するサブクラスでは必ずしも再定義は必要ない、という認識は合ってますでしょうか。
undefined reference to `vtable for サブクラス名'
というメッセージがコンパイル時に出てエラーになるのですが、原因がよくわかりません。
2行出ているのですが、これは何か2つ、virtualの宣言だけで定義されていないものがあるということですか?
自分では特に見当たらないのですが……。
なにかヒントをいただけないでしょうか。
コンパイラはMinGW gccです。よろしくお願いします。
あるクラス内でvirtual関数を定義した場合、それを継承するサブクラスでは必ずしも再定義は必要ない、という認識は合ってますでしょうか。
undefined reference to `vtable for サブクラス名'
というメッセージがコンパイル時に出てエラーになるのですが、原因がよくわかりません。
2行出ているのですが、これは何か2つ、virtualの宣言だけで定義されていないものがあるということですか?
自分では特に見当たらないのですが……。
なにかヒントをいただけないでしょうか。
コンパイラはMinGW gccです。よろしくお願いします。