чтоб было два конструктора в классе
возможно ли это и правельно ли так делать или лучше сделать отдельные классы?
Возможно ли - да, возможно. Вы можете объявить в своём классе любое количество конструкторов, а также деструкторов, если будет очень нужно. Но при объявлении деструкторовне забывайте, что автоматиески всегда будет вызываться виртуальный деструктор destroy, поскольку остальные классы из библиотеки знают только о нём.
Правильно ли - это вопрос сложный. Тут весь фокус в том, кто определяет правила.
Делать отдельные классы, если всё остальное совпадает - большого смысла не имеет, и вот это будет в некотором смысле неправильно. Любое дублирование кода (избыточность кода) начинает создавать проблемы, особенно когда проект разрастается.
Лично я в подобном случае сделал бы два конструктора с разными именами, но это зависит от стиля программирования. Кому-то, наоборот, больше по душе именно использования перегрузки методов.