Нет, хочу понять просто можно ли с точки зрения синтаксиса и компилятора это сделать одним конструктором
В общем случае - нет, если вы руками к типу не приведете. Либо наопределять конструкторов и в них прокидывать через каст к нужному типу
Этот вариант рабочий, все верно. Но немного нето
А зачем, кстати?
Это очень криво, теоретически можно
Не отрицаю, я просто хочу понять как это сделать
Да и собственно, что там мучиться, написал 4 конструктора и всё
Как бы тут так : 0) конструирование и присваивание всегда неполиморфны, в том смысле, что они всегда конкретны. Вот это, а вот то, откуда надо копировать данные. Если ты хочешь что-то типа "я хочу взять все данные что только есть - это почти 100% горбуха, так не бывает. Например, животное, млекопитающее, примат, человек - и ты хочешь человека инициализировать из млекопитающего, а это, скажем, кот. Или утконос. Вот утконос даже лучше - давай проинициадизируем человека утконосом. И что будет?
Вопрос же в другом, я разве отрицаю того что было сказано. Я просто спросил с точки зрения синтаксиса и компилятора это можно сделать или нет
Спасибо. Теперь хотелось бы узнать как?
1 определить N конструкторов от N смежных классов 2 определить один конструктор от базового класса (по ссылке) и там определять динамический тип источника и там switch по типу и какие-то действия
Обсуждают сегодня