L'article n'est pas tout à fait clair (à mon avis) sur un sujet: Il me semble comprendre que le garbage collector est du type "tout ou rien", si on choisit de l'utiliser, il faut changer la façon dont on gère la mémoire.
J'aurais aimé un système où: - On continue de gèrer ses objets par alloc/release/autorelease... - On peut utiliser le garbage collector pour récupérer éventuellement les oublis de libération.
Ca aurait été sympa et efficace (à condition que le ramassage de miettes soit plus rapide s'il y a peu de miettes, ce qui n'est pas forcément évident).
Enfin, pour l'instant, rien n'est sûr, j'ai peut-être mal compris, comme souvent
En dehors des sources direct de chez Apple y'a aussi ici qu'on en apprend un peu plus.
Et surprise j'y vois une forme de retour de la multiple inheritance dont la perte m'avais tellement posé de soucis au moment du passage de C++ à Obj-C. Et c'est bizarre mais je m'en réjouis moins que j'aurais cru ...
Y'avait un autre truc que j'adorais en C++, c'est la surcharge d'opérateur et il parait que ça fait aussi parti de l'Obj-C 2.0 ....
A partir du moment où tu peux faire de l'Objective-C++, tu pourras retrouver toutes les joies du C++ et de l'aspect réellement POO qu'on n'a pas en Obj-C de par sa dérivation du C. - surcharge d'opérateurs - templates - héritage multiple (quoique c'est pas une pratique très propre !) - méthodes virtuelles - ...
Les protocoles concrets n'ont pas grand chose à voir avec l'héritage multiple du C++. Ils permettraient de définir une implémentation pour un protocole, et les classes qui adoptent ce protocole adopteeraient également cette implémentation par défaut. C'est donc la combinaison d'une classe et de méthodes n'appartenant à aucune classe. Par rapport à ce qui existe, ça reviendrait à taper l'implémentation par défaut dans un fichier externe et faire un #include de ce fichier dans les implémentations des classes qui adoptent le dit protocole. Alors qu'en C++ c'est une combinaison de 2 classes.
Tu as vu où que les opérateurs pouvaient être surchargés en obj-c 2? Suis pas au courant.
dans 1165335305:
aspect réellement POO qu'on n'a pas en Obj-C de par sa dérivation du C.
Tu as vu où que les opérateurs pouvaient être surchargés en obj-c 2? Suis pas au courant.
C'est là le Pb! J'arrivie pas à retrouver cette foutue page que j'avais lue en diagonale en me prométtant d'y revenir.... Je suis pas du tout sur que la source était fiable Je l'ai bien vu quelque part mais où ???
P'tet dans un forum de Cocoa-Anisé ? :P
[EDIT]Â je penses savoir où j'ai lu ça et, à la réflexion, ça avait l'air d'une libre et mauvaise interprétation de ce que permetraient les properties. dsl
Réponses
http://developer.apple.com/leopard/overview/tools.html.
L'article n'est pas tout à fait clair (à mon avis) sur un sujet:
Il me semble comprendre que le garbage collector est du type "tout ou rien", si on choisit de l'utiliser, il faut changer la façon dont on gère la mémoire.
J'aurais aimé un système où:
- On continue de gèrer ses objets par alloc/release/autorelease...
- On peut utiliser le garbage collector pour récupérer éventuellement les oublis de libération.
Ca aurait été sympa et efficace (à condition que le ramassage de miettes soit plus rapide s'il y a peu de miettes, ce qui n'est pas forcément évident).
Enfin, pour l'instant, rien n'est sûr, j'ai peut-être mal compris, comme souvent
Et surprise j'y vois une forme de retour de la multiple inheritance dont la perte m'avais tellement posé de soucis au moment du passage de C++ à Obj-C.
Et c'est bizarre mais je m'en réjouis moins que j'aurais cru ...
Y'avait un autre truc que j'adorais en C++, c'est la surcharge d'opérateur et il parait que ça fait aussi parti de l'Obj-C 2.0 ....
- surcharge d'opérateurs
- templates
- héritage multiple (quoique c'est pas une pratique très propre !)
- méthodes virtuelles
- ...
Les protocoles concrets n'ont pas grand chose à voir avec l'héritage multiple du C++. Ils permettraient de définir une implémentation pour un protocole, et les classes qui adoptent ce protocole adopteeraient également cette implémentation par défaut. C'est donc la combinaison d'une classe et de méthodes n'appartenant à aucune classe. Par rapport à ce qui existe, ça reviendrait à taper l'implémentation par défaut dans un fichier externe et faire un #include de ce fichier dans les implémentations des classes qui adoptent le dit protocole. Alors qu'en C++ c'est une combinaison de 2 classes.
Tu as vu où que les opérateurs pouvaient être surchargés en obj-c 2? Suis pas au courant.
Parce que le C++ ne dérive pas du C?
C'est là le Pb!
J'arrivie pas à retrouver cette foutue page que j'avais lue en diagonale en me prométtant d'y revenir....
Je suis pas du tout sur que la source était fiable
Je l'ai bien vu quelque part mais où ???
P'tet dans un forum de Cocoa-Anisé ? :P
[EDIT]Â je penses savoir où j'ai lu ça et, à la réflexion, ça avait l'air d'une libre et mauvaise interprétation de ce que permetraient les properties.
dsl
Bon du coup, tant qu'a parler de (sur)charge, celle là elle est pour moi...
http://andymatuschak.org/articles/2006/08/27/clues-to-objective-c-2-0