У меня есть базовый класс A и три подкласса:
class A {}
class X : A {}
class Y : A {}
class Z : A {}
В моем коде у меня есть экземпляр m
, для которого я хотел бы создать копию того же типа . Я могу успешно использовать следующий код:
let n = type(of: m).init(m)
... and in class A:
required init(m : A) {
self.param1 = m.param1
Я пытаюсь упростить вещи, создав конструктор копирования в классе A:
func copy() {
return type(of: self).init(self)
}
, но это объявление вызывает ошибку: Невозможно вызвать значение нефункционального типа 'AType'
Два вопроса: что я делаю не так? и есть ли более простой способ создать конструктор копирования, включающий подклассы?