Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > вынести функцию/класс в отдельный файл


Автор: likehood 27.6.2009, 10:44
Иногда при рефакторинге возникает задача вынести некоторый класс или функцию в отдельный файл. Для этого нужно создать пару h/cpp файлов, скопировать туда нужный код и подключить h файл на старом месте. Можно ли как-то автоматизировать этот процесс?
И попутно еще один вопрос: можно ли создавать сразу пару h/cpp файлов; пока приходится создавать каждый файл по-отдельности.

P.S. использую VS 2005 + Visual Assist X 1724

Автор: Earnest 29.6.2009, 09:03
Цитата(likehood @  27.6.2009,  11:44 Найти цитируемый пост)
И попутно еще один вопрос: можно ли создавать сразу пару h/cpp файлов; пока приходится создавать каждый файл по-отдельности.

Когда создаешь визардом класс, он так и делает - создает пару файлов... Причем класс может быть любой, не обязательно наследник MFC объектов.
Сама так не делаю: во-первых, среда неизвестно зачем берет в check out rc + resource.h, во вторых - приходится все равно шапку и всякие мусорные слова от визарда править руками (но у меня 2003). Не понимаю, в чем здесь автоматизация. Эта такая малая часть работы по отношению к разработке кода класса... о чем здесь вообще говорить...
Я создаю пару файлов руками + использую Assist, чтобы вставить стандартную шапку...

Что касается первой части твоего вопроса - готовой функциональности не знаю, хотя наверняка есть (от сторонних рахработчиков). Я весь рефакторинг делаю руками (максимум, замены использую): Во первых, помогает вспомнить (узнать) структуру кода, во-вторых, приучает писать аккуратно сразу (и думать о структуре). Кроме того, это отличное занятие, когда думать уже не можешь, а работать еще надо... smile 


Автор: likehood 30.6.2009, 16:45
Спасибо за ответ. Наверное, и вправду, не стоит этим заморачиваться.
Просто иногда мысль прёт, хочется побыстрее приступить к написанию кода.

Хотя...

Цитата(Earnest @  29.6.2009,  09:03 Найти цитируемый пост)
Кроме того, это отличное занятие, когда думать уже не можешь, а работать еще надо... 

С этим не поспоришь smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)