Если вы используете программу на C ++, а файл заголовка содержит определения классов, определения классов должны точно соответствовать тем, которые использовались для первоначальной сборки файла .Это правило One Definition .Если ваш профессор удалил объявления частных переменных из определений классов, вы, скорее всего, столкнетесь со сбоями;это потому, что ваши разные файлы .o не согласятся с размером объектов, определенных этими классами.
Если ваш профессор хочет скрыть реализацию класса, ему следует использовать шаблон p / impl.Если вы хотите использовать файл заголовка, вы должны полностью удалить искаженные определения классов и не пытаться их использовать (вы можете использовать прямое определение, как в class Foo;
, чтобы удовлетворить любые функции, которые принимают / возвращают класс в качестве параметра указателя,однако).