Bonjour,

J'ai pris pour habitude d'ajouter une méthode self renvoyant l'instance de la classe, mais est-il facilement possible implémenter une méthode de copie (ou plus exactement un constructeur de copie - de ce que je sais, c'est courant en C++) ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'
Public Property Get self() As clsXXX 'une fonction est peut-être plus appropriée d'ailleurs
 
    Set self = Me
 
End Property
 
'..
 
'
Public Sub initialize(ByVal val As Variant, ByRef obj As Object) 'pour infos, me permet d'instancier mes classes avec des arguments (factory)
 
End Sub
 
'
Public Function copy() As clsXXX 'une fonction est peut-être plus appropriée d'ailleurs
 
   '  Set copy = ByVal Me 'bien sûr, ça ne fonctionne pas, ça aurait été bien trop simple...
 
End Function
Peut-être tout simplement, utiliser une procédure générique telle que (l'idée m'est juste venu, je n'ai pas encore testé) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Public Function copy(ByVal obj As Object) As Object
 
    Set copy = obj
 
End Function
Je pense que c'est quand même peine perdue d'implémenter la méthode dans la classe elle-même, car je pense que ça passerait par une méthode spéciale telle que Class_Initialize ou Class_Terminate, mais avez-vous d'autres idées ?

Merci par avance !