2017-05-11 14 views
1

未知のコードをブラウズするときに、特定のクラスがどこでインスタンス化されているかを確認すると役立つことがよくあります。C++ソースコードでクラスのインスタンスを見つける方法は?

クラスMyClassが与えられた場合、コードを検索してMyClassがインスタンス化される場所を見つける方法を教えてください。 クラスの名前を検索するだけでは、通常、関数またはメンバーの宣言でクラスが使用される場所が非常に多く発生します。だから役に立たない。 これを制限する方法と、インスタンス化のみを表示する方法はありますか? 正規表現はありますか?もちろん

MyClass a; 
DerivedClass b = MyClass(xyz); 
AddItem(new MyClass(xyz)); 

クラスが直接どこでもインスタンス化しますが、基本クラスとして機能しないことも可能である: それは、少なくともようなケースを処理する必要があります。私はこれらのケースを考慮していない、それはものが難しいと思うので、私は推測する。

+1

を戻します"または類似のもの。また、すでに実行しているIDEを再実装する場合に備えて、指定されたクラスのインスタンス化をすべて表示するclangツールを記述することもできます。 – nwp

+0

'clang-query'ツールを見てください。 –

+0

@nwp:残念なことに、MS Visual Studio 2013 Proではそのような機能はありません。視覚アシストでもありません。 – Scrontch

答えて

6

1)MyClass年代コンストラクタを作るプライベート

2)

3をコンパイル)エラーメッセージ

4を読む)あなたはMyClass` `上で右クリックし、「表示用途を選択

+0

いいです。プロジェクトがビルドに15 +分かかる場合は少し退屈ですが。 – Scrontch

関連する問題