2017-10-10 3 views
0

En C++, je peux l'implémenter comme ceci.Classe hérite son générique dans Swift

template<typename MyType> 
class MyClass : public MyType 
{  
}; 

Est-il possible de le faire dans Swift?

///Compiler error: Inheritance from non-procotol, non-class type 'T' 
class MyClass<MyGeneric> : MyGeneric 
{ 
} 
+0

Non, ce n'est pas possible. Pourquoi voulez-vous cela exactement? – Hamish

+0

ne voulez-vous pas dire 'classe MyClass : MyGeneric {}' ...? parce que votre syntaxe n'a aucun sens du tout. – holex

Répondre

1

Vous devez utiliser votre classe comme une contrainte. La façon dont vous l'avez écrit fait MyGeneric un nom d'espace réservé (et non une référence à la classe avec le même nom):

class MyClass<T:MyGenericClass>:MyGenericClass 
{} 

Cela suppose que ce que vous essayez d'obtenir quelque chose comme ceci:

class MyGenericSubClass: MyGenericClass {} 

let c = MyClass<MyGenericSubClass>()