Создание списка всех классов в проекте C ++ - PullRequest
4 голосов
/ 16 июля 2009

Я использую Visual Studio 2008 (C ++) и хотел бы создать список всех классов, определенных в этом проекте. Кто-нибудь знает инструменты, которые легко их извлекают?

Простого «Найти в файлах», конечно, будет недостаточно.

Редактировать: список классов должен создаваться автоматически, а результатом должен быть простой файл имен классов (по одному классу в каждой строке).

Ответы [ 3 ]

12 голосов
/ 16 июля 2009

Doxygen сделает это и загрузит больше. Это действительно хороший инструмент для производства всех видов документации

4 голосов
/ 16 июля 2009

Вы можете просмотреть все классы и т. Д. В своем проекте в окне просмотра классов (View> Class View). Вы даже можете создавать свои собственные папки и организовывать классы для создания собственной структуры. Например. Вы можете создавать папки с именами Refactor, Unused, Suspect и т. д.

Вы не можете распечатать представление класса, но браузер все еще может быть вам полезен.

2 голосов
/ 16 июля 2009

Вы можете использовать такой инструмент, как ctags , чтобы создать файл тегов, содержащий информацию этого класса.

РЕДАКТИРОВАТЬ: Я только что проверил эту ctags.exe командную строку в редакторе Zeus , и он, кажется, делает то, что вам нужно:

 ctags.exe --C++-kinds=+c-d-e-f-g-l-m-M-n-p-s-t-T-u-v-x-X-V somefile.cpp

Эта командная строка исключает все, кроме информации о классе из вывода тега, поэтому выполнение этой команды для файла c ++ приведет к созданию текстового файла tags , который не содержит ничего, кроме класса информация из этого файла.

Например, вот содержимое файла tags для одного из заголовочных файлов Zeus :

 !_TAG_FILE_FORMAT  2  /extended format; --format=1 will not append ;" to lines/
 !_TAG_FILE_SORTED  1  /0=unsorted, 1=sorted, 2=foldcase/
 !_TAG_PROGRAM_AUTHOR  Darren Hiebert  /dhiebert@users.sourceforge.net/
 !_TAG_PROGRAM_NAME  Exuberant Ctags  //
 !_TAG_PROGRAM_URL  http://ctags.sourceforge.net  /official site/
 !_TAG_PROGRAM_VERSION  5.7  //
 ZeusRebar  c:\projects\zeus3.96\zfwbar01.hpp  /^class ZeusRebar : public xRebar$/;"  c
 ZeusToolBar  c:\projects\zeus3.96\zfwbar01.hpp  /^class ZeusToolBar : public xToolBar$/;"  c
 ZeusToolPanel  c:\projects\zeus3.96\zfwbar01.hpp  /^class ZeusToolPanel : public ZeusRebar$/;"  c
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...