Технически: Да, это возможно. Обычная файловая структура с *.cpp
и *.h
или *.hpp
файлами - это только Соглашение. Язык не мешает вам определять конструкторы или другие функции-члены для двух разных классов в одном исходном файле.
animal.h:
#ifndef ANIMAL_H
#define ANIMAL_H
class Animal
{
public:
Animal();
};
#endif
pet.h:
#ifndef PET_H
#define PET_H
#include "animal.h"
class Pet : public Animal
{
public:
Pet();
};
#endif
animal.cpp:
#include "pet.h"
Pet::Pet() {}
Animal::Animal() {}
ли вы должен сделать это совсем другая история. Обычно это упростит вашу структуру проекта и будет сложнее поддерживать. Приведенный выше пример является особенно плохим случаем, который любой компетентный программист на C++ захочет реорганизовать.
Код выглядит хорошо. Вы сталкиваетесь с какой-то проблемой? Получить более подробную информацию - сообщения об ошибках или нежелательное поведение. –