Дальше будет про язык программирования C++, так что caveat lector.
Пусть есть маленькая программка на С++, написанная в стиле старого доброго Си: типы данных "plain old data", возможно, глобальные переменные, функции, но, скажем, с использованием относительно новомодного auto, где это удобно.
Возникает вопрос: что будет, если всё это взять и без изменений погрузить в один класс (скажем, Refact)? Объявленные типы становятся локальными в классе, глобальные переменные становятся элементами класса, функции становятся методами класса. Для полноты картины убеждаемся, что в первоначальной функции main, которая стала методом класса, возврат кода ответа везде явный, и дописываем настоящую функцию main, примерно как int main(int argc, char * argv[]) { return Refact().main(argc, argv); }
Какие подводные камни будут нас поджидать?