Здравствуйте, a1ien.n3t, Вы писали:
AN>Пока как вариант вижу сделать у Sender приватный конструктор, а SomeDevice сделать дружественным к Sender, тоже надо делать дружественным и SomeDevice так-как нужен доступ из Sender к приватным полям.
Сделать Sender чистым интерфейсом и реализовывать его в SomeDevice. Мотивация: слишком сильная связанность Sender и SomeDevice. Если не хочешь делать интерфейс открытым, то можно использовать подход "грань", сделать интерфейс защищённым и определить оператор преобразования, хотя толку от такого в жанном случаее мало.
Ну а вообще, попробуй просто разобраться что должен делать/хранить sender, а что some device. Может стоит подумать про использование потоков ввода/вывода из stl.