Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
888 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Héritage cyclique.

n°534113
chrisbk
-
Posté le 08-10-2003 à 09:34:14  profilanswer
 

Reprise du message précédent :

bobuse a écrit :


merci
 
ça se tient :D


 
bah vi [:spamafote]
Imagine que les concepteurs de java aient choisi "->" a la place du "." (sauf rien changer au reste)....

mood
Publicité
Posté le 08-10-2003 à 09:34:14  profilanswer
 

n°534116
Taz
bisounours-codeur
Posté le 08-10-2003 à 09:38:45  profilanswer
 

chrisbk a écrit :


 
bah vi [:spamafote]
Imagine que les concepteurs de java aient choisi "->" a la place du "." (sauf rien changer au reste)....

rien à voir. la référence C++ doit être initialisé et est un vrai alias. elle n'est pas ré-attachable à un autre objet. en Java, comme en C, on a que du passage de paramètre par valeur

n°534118
benou
Posté le 08-10-2003 à 09:45:39  profilanswer
 

d'un autre côté, contrairement au pointeur du C/C++, une référence Java ne peut pas pointer autre chose qu'un objet ou null : elle ne peut pas être affectée à une valeur incorecte ou éronnée ...


---------------
ma vie, mon oeuvre - HomePlayer
n°534125
LetoII
Le dormeur doit se réveiller
Posté le 08-10-2003 à 09:53:04  profilanswer
 

Taz a écrit :

rien à voir. la référence C++ doit être initialisé et est un vrai alias. elle n'est pas ré-attachable à un autre objet. en Java, comme en C, on a que du passage de paramètre par valeur


 
Je ne suis pas d'accord sur ce point, en java seule les type atomique non objet sont passé par valeur.


---------------
Le Tyran
n°534128
Taz
bisounours-codeur
Posté le 08-10-2003 à 10:03:56  profilanswer
 

LetoII a écrit :


 
Je ne suis pas d'accord sur ce point, en java seule les type atomique non objet sont passé par valeur.

c'est que t'as pas du tout comprendre

n°534130
LetoII
Le dormeur doit se réveiller
Posté le 08-10-2003 à 10:06:06  profilanswer
 

Taz a écrit :

c'est que t'as pas du tout comprendre


 
Ben explique moi alors puisque tu es si fort


---------------
Le Tyran
n°534136
Taz
bisounours-codeur
Posté le 08-10-2003 à 10:12:27  profilanswer
 

je te propose plutot de me trouver un contre-exemple
 
edit : et pi je suis pas là pour faire des cours de Java  :o


Message édité par Taz le 08-10-2003 à 10:13:15
n°534138
LetoII
Le dormeur doit se réveiller
Posté le 08-10-2003 à 10:13:53  profilanswer
 

Taz a écrit :

je te propose plutot de me trouver un contre-exemple
 
edit : et pi je suis pas là pour faire des cours de Java  :o  


 
 :lol:  
 
Belle pirouette.  :sarcastic:


---------------
Le Tyran
n°534139
chrisbk
-
Posté le 08-10-2003 à 10:15:27  profilanswer
 

LetoII a écrit :


 
Ben explique moi alors puisque tu es si fort


 
ben en gros, le code java
 

Code :
  1. class toto
  2. {
  3. String kookoo;
  4. int pouet;
  5. }


 
serait (en gros) en C++ :

Code :
  1. class toto
  2. {
  3. String * kookoo;
  4. int pouet;
  5. }


 
tu n'accede jamais a un objet qu'au travers de son "pointeur", et tu ne peux pas obtenir une reference sur ce pointeur.
 
D'ailleurs si java permettait autre chose que du passage par valeur, alors on pourrait faire du in/out, ce qui ne serait pas un mal
 

n°534142
Taz
bisounours-codeur
Posté le 08-10-2003 à 10:18:13  profilanswer
 

pour pas faillir : C++ qui propose déjà l'héritage multiple, va sans doute permettre d'exprimer l'héritage exclusif

mood
Publicité
Posté le 08-10-2003 à 10:18:13  profilanswer
 

n°534144
LetoII
Le dormeur doit se réveiller
Posté le 08-10-2003 à 10:19:38  profilanswer
 

chrisbk a écrit :


 
ben en gros, le code java
 

Code :
  1. class toto
  2. {
  3. String kookoo;
  4. int pouet;
  5. }


 
serait (en gros) en C++ :

Code :
  1. class toto
  2. {
  3. String * kookoo;
  4. int pouet;
  5. }


 
tu n'accede jamais a un objet qu'au travers de son "pointeur", et tu ne peux pas obtenir une reference sur ce pointeur.
 
D'ailleurs si java permettait autre chose que du passage par valeur, alors on pourrait faire du in/out, ce qui ne serait pas un mal
 
 


 
Je ne suis pas d'accord. La différence c que java autorize qu'une référence ne désigne pas un objet (null). Ce qui est trompeur c que beaucoup d'objets sont non mutables et ne peuvent de toute manière être modifiés (String en est le parfait exemple)


---------------
Le Tyran
n°534146
chrisbk
-
Posté le 08-10-2003 à 10:24:14  profilanswer
 

LetoII a écrit :


 
Je ne suis pas d'accord. La différence c que java autorize qu'une référence ne désigne pas un objet (null). Ce qui est trompeur c que beaucoup d'objets sont non mutables et ne peuvent de toute manière être modifiés (String en est le parfait exemple)


 
Eh bien vous avez tord mon cher :D
d'ailleurs n'importe quel objet java est representé sous forme d'un pointeur de 4 octets. (ca prends un slot sur la stack du bytecode). Les seules instructions que tu as sont du type ALOAD (pour balancer ledit pointeur sur la stack par exemple) et aucune blague genre le lea de l'x86
Bref je ne vois tout simplement pas comment tu peux faire autre chose que du passage par valeur
 
 

n°534148
LetoII
Le dormeur doit se réveiller
Posté le 08-10-2003 à 10:27:22  profilanswer
 

chrisbk a écrit :


 
Eh bien vous avez tord mon cher :D
d'ailleurs n'importe quel objet java est representé sous forme d'un pointeur de 4 octets. (ca prends un slot sur la stack du bytecode). Les seules instructions que tu as sont du type ALOAD (pour balancer ledit pointeur sur la stack par exemple) et aucune blague genre le lea de l'x86
Bref je ne vois tout simplement pas comment tu peux faire autre chose que du passage par valeur
 
 
 


 
C'est une question de point de vue, toi tu ne que vois le fait que l'on passe la valeur d'un lien à une méthode. Or ce n'est pas là l'intéressant mais c'est l'objet qui se trouve au bout qui m'intéresse lorsque je fais du java, celui là n'est pas passé par valeur.


---------------
Le Tyran
n°534150
chrisbk
-
Posté le 08-10-2003 à 10:31:57  profilanswer
 

LetoII a écrit :


 
C'est une question de point de vue, toi tu ne que vois le fait que l'on passe la valeur d'un lien à une méthode. Or ce n'est pas là l'intéressant mais c'est l'objet qui se trouve au bout qui m'intéresse lorsque je fais du java, celui là n'est pas passé par valeur.


 
Ah ca y est je comprends ce que tu veux dire :O (je viens de finir mon premier café, ca y est les neurones chauffent).
Non un objet ne peut pas etre passé par valeur, mais de toute facon tu n'accede jamais directement a un objet, mais tjs via son "pointeur" et tout un tas de fonction (ne serait que pour acceder / seter un champ)
 
 
 
 

n°534153
LetoII
Le dormeur doit se réveiller
Posté le 08-10-2003 à 10:35:07  profilanswer
 

chrisbk a écrit :


 
Ah ca y est je comprends ce que tu veux dire :O (je viens de finir mon premier café, ca y est les neurones chauffent).
Non un objet ne peut pas etre passé par valeur, mais de toute facon tu n'accede jamais directement a un objet, mais tjs via son "pointeur" et tout un tas de fonction (ne serait que pour acceder / seter un champ)
 
 
 
 
 


 
Oui mais ce pointeur n'a pas d'intéret intraséque en java. Conceptuellement parlant on utilise pas de passage par valeur.


---------------
Le Tyran
n°534156
chrisbk
-
Posté le 08-10-2003 à 10:39:13  profilanswer
 

ben conceptuellement parlant c pas du passage par ref non plus...

n°534157
LetoII
Le dormeur doit se réveiller
Posté le 08-10-2003 à 10:40:45  profilanswer
 

chrisbk a écrit :

ben conceptuellement parlant c pas du passage par ref non plus...


 
En c++ non plus alors, par ce que qu'est ce qu'une référence si non un pointeur sécurisé?


---------------
Le Tyran
n°534161
chrisbk
-
Posté le 08-10-2003 à 10:45:14  profilanswer
 

LetoII a écrit :


 
En c++ non plus alors, par ce que qu'est ce qu'une référence si non un pointeur sécurisé?


 
quelque chose qui me permet de modifier un objet, fut-il mutable ou non, ce qui est impossible en java.
genre ce (supairbe) exemple :
 

Code :
  1. class toto
  2. {
  3. int a;
  4. public:
  5. toto(int b)
  6. {
  7.  a=b;
  8. }
  9. void display()
  10. {
  11.  std::cout<<a<<endl;
  12. }
  13. };
  14. void truc(toto &a)
  15. {
  16. a = * new toto(2);
  17. }
  18. int main()
  19. {
  20. toto c(5);
  21. c.display();
  22. truc(c);
  23. c.display();
  24. return 0;
  25. }


 
affiche  
5
2
Ceci est impossible tel quel en java. On s'embourbe. Java represente tout ces objets sous forme de pointeur, pour moi l'histoire s'arrete la. (:o)
 
(L'exemple C++ fourni est ignoble, j'en suis bien conscient, c'est un exemple :O)


Message édité par chrisbk le 08-10-2003 à 10:46:48
n°534168
LetoII
Le dormeur doit se réveiller
Posté le 08-10-2003 à 10:51:52  profilanswer
 

chrisbk a écrit :


 
quelque chose qui me permet de modifier un objet, fut-il mutable ou non, ce qui est impossible en java.
genre ce (supairbe) exemple :
 

Code :
  1. class toto
  2. {
  3. int a;
  4. public:
  5. toto(int b)
  6. {
  7.  a=b;
  8. }
  9. void display()
  10. {
  11.  std::cout<<a<<endl;
  12. }
  13. };
  14. void truc(toto &a)
  15. {
  16. a = * new toto(2);
  17. }
  18. int main()
  19. {
  20. toto c(5);
  21. c.display();
  22. truc(c);
  23. c.display();
  24. return 0;
  25. }


 
affiche  
5
2
Ceci est impossible tel quel en java. On s'embourbe. Java represente tout ces objets sous forme de pointeur, pour moi l'histoire s'arrete la. (:o)
 
(L'exemple C++ fourni est ignoble, j'en suis bien conscient, c'est un exemple :O)


 
Exemple non probant: la surcharge d'operateur n'existe pas en java, ton exemple serait donc remplacé par des appels à des méthodes de type set ou une seule m"thode recopiant les données d'un objet dans un autre. Tout à fait faisable en java donc  [:spamafote]


---------------
Le Tyran
n°534169
nraynaud
lol
Posté le 08-10-2003 à 10:52:24  profilanswer
 

(j'ai juste lu un message au milieu de ce qui semblait un troll stéril pour voir de quoi ça parlait)
 
 

chrisbk a écrit :


Eh bien vous avez tord mon cher :D
d'ailleurs n'importe quel objet java est representé sous forme d'un pointeur de 4 octets. (ca prends un slot sur la stack du bytecode). Les seules instructions que tu as sont du type ALOAD (pour balancer ledit pointeur sur la stack par exemple) et aucune blague genre le lea de l'x86
Bref je ne vois tout simplement pas comment tu peux faire autre chose que du passage par valeur

C'est original d'étudier la sémantique d'un langage par la représentation qu'on peut faire d'un programme dans un autre langage de sémantique plus faible, faudrait peut-être que t'écrives une thèse là-dessus (par contre t'as intérêt à bétonner ta preuve car tu va être attendu).
 
edit : en fait c'est l'école de Harko.
Ne nous faisont pas chier à apprendre la conception Objet ou les abstrations du fonctionnel aux étudiant, apprenons-leur un assembleur quelconque.


Message édité par nraynaud le 08-10-2003 à 10:55:15
n°534173
LetoII
Le dormeur doit se réveiller
Posté le 08-10-2003 à 10:56:10  profilanswer
 

nraynaud a écrit :

(j'ai juste lu un message au milieu de ce qui semblait un troll stéril pour voir de quoi ça parlait)
 
 
C'est original d'étudier la sémantique d'un langage par la représentation qu'on peut faire d'un programme dans un autre langage de sémantique plus faible, faudrait peut-être que t'écrives une thèse là-dessus (par contre t'as intérêt à bétonner ta preuve car tu va être attendu).


 
Je sais pas comment l'interpréter. Ca semble sarcastique au possible mais un doute demeure...  [:ddr555]  
 
Bon si non je ne troll pas personnellement, j'expose simplement mon point de vue sur la chose même si ça sort largement du cadre du topic. On devrait^peut être poursuivre ailleur d'ailleur.


---------------
Le Tyran
n°534174
chrisbk
-
Posté le 08-10-2003 à 10:56:15  profilanswer
 

LetoII a écrit :


 
Exemple non probant: la surcharge d'operateur n'existe pas en java, ton exemple serait donc remplacé par des appels à des méthodes de type set ou une seule m"thode recopiant les données d'un objet dans un autre. Tout à fait faisable en java donc  [:spamafote]  


 
ou est ce que tu vois une surcharge d'operateur la dedans ?
et si y'a pas de set je fais comment ? (la superbe classe Integer)
et comment je fais avec un type atomique ?
 
nraynaud : je vois ce que tu veux dire, mais pour moi les deux sont lies, savoir comment est representé le java sous sa forme bytecode permet (a mon gout) de mieux comprendre ce qu'il se passe a un etage au dessus

n°534177
LetoII
Le dormeur doit se réveiller
Posté le 08-10-2003 à 10:59:30  profilanswer
 

chrisbk a écrit :


 
ou est ce que tu vois une surcharge d'operateur la dedans ?
et si y'a pas de set je fais comment ? (la superbe classe Integer)
et comment je fais avec un type atomique ?
 
nraynaud : je vois ce que tu veux dire, mais pour moi les deux sont lies, savoir comment est representé le java sous sa forme bytecode permet (a mon gout) de mieux comprendre ce qu'il se passe a un etage au dessus


 
Il y a surcharge implicite de l'operateur = par le compilo (et oui même si tu l'écrit pas le compilo t'en fourni un). Et s'il y a pas de set ben l'objet n'est pas mutable donc non modifiable. Tu obtien la même chose en c++ en créant un operateur = private et en ne métant pas de set.


---------------
Le Tyran
n°534250
the real m​oins moins
Posté le 08-10-2003 à 12:10:35  profilanswer
 

LetoII a écrit :


 
Je ne suis pas d'accord sur ce point, en java seule les type atomique non objet sont passé par valeur.

+1
edit: ha ben d'accord y'avait encore une page à lire :whistle:


Message édité par the real moins moins le 08-10-2003 à 12:13:24

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°534274
nraynaud
lol
Posté le 08-10-2003 à 12:38:42  profilanswer
 

LetoII a écrit :


la surcharge d'operateur n'existe pas en java

Juste un petit détail : elle n'est pas accessible à l'utilisateur, mais elle existe. C'est pas mal de garder ça à l'esprit quand ça commence à se corser (style analyse des types).


Message édité par nraynaud le 08-10-2003 à 12:46:44
n°534276
nraynaud
lol
Posté le 08-10-2003 à 12:42:35  profilanswer
 

chrisbk a écrit :


nraynaud : je vois ce que tu veux dire, mais pour moi les deux sont lies, savoir comment est representé le java sous sa forme bytecode permet (a mon gout) de mieux comprendre ce qu'il se passe a un etage au dessus

Non, pas dans ce cas où la discussion se veut très précise (bien que personne ne saisisse l'enjeu du truc et n'aie le vocabulaire adapté).

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[C++] je debute. classe amie. classe abstraite, heritage.[c#] Question sur l'heritage entre classe
C++ et héritage (SDL)Affectation template & héritage
Ecrire structure dans un fichier + héritage[C++] Objet / héritage : cherche exercice
C++ constructeur et heritage ...[ Python ] Problème héritage # 4 (- update- )
héritage et surchage d'opérateurHéritage et destructeur
Plus de sujets relatifs à : Héritage cyclique.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR