解決方法が分からないのでここで質問することにしました。
typeid演算子を使っていて途中から、警告されるのですが、無視してデバックを行うと途中からERRORになり、中断しました。
警告内容は、
(warning C4541: 'typeid' が /GR- を使用したポリモーフィック型 'Kitty' で使用されています; 動作結果は保証されません。)
というもので、まず下記のソースを読んでもらいたいのですが
#include<iostream>
#include<typeinfo>
using namespace std;
class Kitty {
public:
virtual void func() {} ;
} obj1;
class Chobits : public Kitty {
public:
void func() {}
} obj2 ;
int main() {
Kitty *po = &obj1;
cout << "Class type = " << typeid (*po).name() << '\n';
po = &obj2;
cout << "Class type = " << typeid (*po).name() << '\n';
return 0;
}
のmain()内のtypeid演算子が原因のようなのですが、解決方法がよく分かりません。プラットフォームはVS.NET2003でC++で記述しています。
ちなみにERROR内容は、sample55.exe の 0x7c812aeb でハンドルされていない例外が発生しました : Microsoft C++ exception: __non_rtti_object @ 0x0013fdb4。というものです。
No.1ベストアンサー
- 回答日時:
C4541でgoogle検索したら一発で見つかりましたよ。
http://msdn.microsoft.com/ja-jp/library/8kyye6db …
コンパイルオプションに/GRをつけてください、ってことで。
プロパティで設定を変更したらできました。ありがとうございます。
googleでの検索方法が悪かったんですね^^;
type演算子だと解説しているのがなかったので。
.NET2003だから対応されていなんですね。
No.2
- 回答日時:
こんばんは。
typeid()やdynamic_cast<T>等は、RTTI(GRオプション)が有効に成っていないと使用出来ません。
VS.NET2003の何処かにRTTIを有効にするチェックボックス等が有る筈です。
見つけて、其処にチェックを入れて下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- Java java final 1 2022/06/10 22:49
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# C言語 3 2022/10/04 15:07
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
C# MouseHoverを何度も呼ぶには
-
C# 親フォームで指定した値を...
-
C#のインクリメント演算子のオ...
-
C# DataGridView列カスタマイズ
-
[C#.net]スレッド化された別フ...
-
C#でのWNetAddConnection3の使...
-
LVM_SETITEMSTATEでListViewの...
-
C# visibleプロパティをfalseに...
-
C#で、あるクラスのメンバーす...
-
struts2のchainで値の受け渡し...
-
JAVA NetBeans タイマーでのラベル
-
Thread.sleepのInterruptedExce...
-
Processingでマウスクリックで...
-
JavaのSwingで別のフォーム...
-
swing初心者です
-
C# タスクバーを隠したフォーム...
-
JavaSwingのファンクションキー...
-
C# WinForm のDataGridView Cel...
-
エンターキーを押すとOKボタン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
C#で、あるクラスのメンバーす...
-
Junitテストでvoid戻り値メッソ...
-
C#でのWNetAddConnection3の使...
-
Processingでマウスクリックで...
-
ボタンの複数割り当てについて
-
エンターキーを押すとOKボタン...
-
C# 矢印キーの取得
-
C# visibleプロパティをfalseに...
-
Thread.sleepのInterruptedExce...
-
C# DataGridView列カスタマイズ
-
C#でキーイベントが発生しない...
-
LVM_SETITEMSTATEでListViewの...
-
[C#.net]スレッド化された別フ...
-
GetDIBits関数の使い方について
-
C# 半角カナの文字化けについて
-
C# 親フォームで指定した値を...
-
javaアプレット repaintのタイ...
-
デスクトップマスコットのドラ...
-
C#で別のFormへ複数の値を返そ...
おすすめ情報