Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[debutant] Passage d'objet par reference

17 réponses
Avatar
Olivier BURELLI
Bonjour,


J'effectue mon apprentissage du C++ avec le livre suivant de J.
Liberty : le Langage C++

je suis interrogatif concernant le listing en fin de post.

si je comprends bien ce que j'ai appris jusqu'ici :

-dans la d=C3=A9claration de la classe SimpleChat et sa methode, on constru=
it
une copie de l'objet par reference (alias) :
SimpleChat(SimpleChat&) , SimpleChat::SimpleChat(SimpleChat&)

dans la declaration et la methode de FonctionDeux on fait appel a des
pointeurs sur les objets :

SimpleChat* FonctionDeux (SimpleChat *leChat) on dereference bien le
pointeur par l'adresse de l'objet indique dans l'appel de la fonction :
FonctionDeux(Frisky&)

si je comprends bien :

FonctionUn renvoie par valeur la reference de l'objet pour la
construction de sa copie.

FonctionDeux renvoie le parametre par dereferencement du pointeur.

Question : Pourquoi dans le commentaire du listing ci-dessous pour
FonctionDeux est-il est pr=C3=A9cis=C3=A9 par reference ?

Question : Dans l'exposition de mon probl=C3=A8me, ai-je bien assimil=C3=A9=
la
notion de pointeur et reference ? J'ai l'impression que ce n'est pas
clair... Si je m'embrouille un retour et mise en garde serait fort
sympatique.

Si quelqu'un veut bien m'apporter ses lumi=C3=A8res, je lui en serai gr=C3=
=A9e :)

Cdt,

Zolive.


[code]
//listing910.cpp - Passage de pointeur sur des objets

#include <iostream>

using namespace std;
class SimpleChat
{
public:
SimpleChat(); //
constructeur SimpleChat(SimpleChat&); //
constructeur de copie
~SimpleChat(); // destructeur };

SimpleChat::SimpleChat()
{
cout << "Constructeur de SimpleChat.." << endl;
}

SimpleChat::SimpleChat(SimpleChat&)
{
cout << "Constructeur de copie de SimpleChat..." << endl;
}

SimpleChat::~SimpleChat()
{
cout << "Destructeur de SimpleChat..." << endl;
}

SimpleChat FonctionUn (SimpleChat leChat);
SimpleChat* FonctionDeux (SimpleChat *leChat);

int main()
{
cout << "Creation d'un objet Chat..." << endl;
SimpleChat Frisky;
cout << "Appel de FonctionUn..." << endl;
FonctionUn(Frisky);
cout << "Appel de FonctionDeux..." << endl;
FonctionDeux(&Frisky);
return 0;
}

// FonctionUn, passage par valeur
SimpleChat FonctionUn(SimpleChat leChat)
{
cout << "Retour de FonctionUn..." << endl;
return leChat;
}

// FonctionDeux, passage par reference
SimpleChat* FonctionDeux(SimpleChat *leChat)
{
cout << "Retour de FonctionDeux..." << endl;
return leChat;
}
[/code]

7 réponses

1 2
Avatar
Olivier BURELLI
On Tue, 7 Jun 2011 10:35:15 +0000 (UTC)
(Marc Espie) wrote:

In article ,
Olivier BURELLI wrote:
>le trois quart des choses exprimées est abstrait pour moi :) je tag
>précieusement ce post pour, un jour ou cela devient comprehensible je
>le retrouve. L'héritage et le polymorphysme ne sont abordé
>respectivement que dans 3 et 5 chapitres.
>
>J'en ai compris le principe, cela ressemble a la fin de mon
>chapitre...

Bon, ben j'ai encore plus envie de te dire de jeter ton bouquin aux
orties. Les exemples te montrent un constructeur de copie, te parlent
de passage par reference, alors qu'ils n'ont pas aborde les points
dont je parle (specifiquement, les 4 methodes qui vont ensemble). Et
ca parle de pointeur.

Desole, mais ca ressemble fort a un bouquin de C++ ecrit par
quelqu'un qui a fait beaucoup de C et qui ne pense pas en C++.

Un vrai bon bouquin de C++ ne va pas presenter les choses dans le meme
ordre.



Je l'avais justement achete car ce livre était plébiscité po ur son
approche C++ pur. Il n'y ait effectivement fait aucune allusion a
une syntaxique ou une approche du C.

Je comprends l'argumentation, je suis l'élève dans ce cas de figu re ne
peux remettre en question le jugement du professeur (mon livre).
Néanmoins, si tu peux me conseiller un livre je suis preneur, toi qui
enseigne si je ne me trompe pas. Je ne peux refuser de prendre en
compte tes conseils.

Je vais aussi peut être trop vite, je ne peux critiquer ce dont
j'ignore. Conscient que chaque enseignant adopte une méthode qui lui
ait propre, l'élève aussi doit faire sa part de travail, pour pos er les
bonnes questions, ou se référer à ce qui était abordà © antérieurement. La
grosse difficulté de l'aspect autodidactique.

A mon sens, un seul livre ne peut enseigner la totalité d'un langage.
Il sera à compléter de surcroit par l'étude de la modél isation et de
l'algorithmie.

J'ai un projet personnel, écrire un programme de gestion de finance
personnelle, j'ai choisi QT que je devrai aussi étudier. A ce sujet il
faudra que je post sur fr.comp.os.bsd sur l'absence de la lib
debug sur QtCreator une foi bien compris le pb.

Challenge un peu gros, souhaitant m'appuyer sur une base postgresql. Le
pb n'étant pas là, j'ai de bonne connaissance en SQL et en archit ecture
de SGBDR.

La programmation reste pour moi un loisir, je prends le temps qu'il
faut.

Merci beaucoup.
Avatar
Olivier BURELLI
On Tue, 07 Jun 2011 14:19:15 +0200
"Pascal J. Bourguignon" wrote:


À moins que tu aies une raison particulière pour apprendre le C++, ce
n'est pas le choix de langage que j'aurais fait pour écrire un
logiciel de finance personnelle.

Si le but c'est ça, il vaudrait mieux choisir un langage qui met moins
de batons dans les roues.




Non, le projet est pour moi un TP en quelque sorte. Il me serait plus
simple aussi de l'écrire en php.

J'avais bétement envie d'acquérir un langage, le C++ me semblait aussi
interressant pour enrichir mes compétences professionnel d'Architecte
et intégration système.

Une lubie quoi :p
Avatar
Fabien LE LEZ
On Wed, 8 Jun 2011 01:04:05 +0000, Olivier BURELLI
:

Je comprends l'anglais technique mais j'ai peur de ne pas comprendre
les subtibilités de la langue pour l'assimilation d'un langage de
programmation



Mieux vaut comprendre le quart d'un bon bouquin que l'intégralité d'un
mauvais.
Avatar
Olivier BURELLI
On Tue, 7 Jun 2011 13:34:43 +0000 (UTC)
(Marc Espie) wrote:

In article ,
Olivier BURELLI wrote:
>On Tue, 7 Jun 2011 10:35:15 +0000 (UTC)
> (Marc Espie) wrote:
>
>> In article ,
>> Olivier BURELLI wrote:
>> >le trois quart des choses exprimées est abstrait pour moi :) je
>> >tag précieusement ce post pour, un jour ou cela devient
>> >comprehensible je le retrouve. L'héritage et le polymorphysme ne
>> >sont abordé respectivement que dans 3 et 5 chapitres.
>> >
>> >J'en ai compris le principe, cela ressemble a la fin de mon
>> >chapitre...
>>
>> Bon, ben j'ai encore plus envie de te dire de jeter ton bouquin aux
>> orties. Les exemples te montrent un constructeur de copie, te
>> parlent de passage par reference, alors qu'ils n'ont pas aborde
>> les points dont je parle (specifiquement, les 4 methodes qui vont
>> ensemble). Et ca parle de pointeur.
>>
>> Desole, mais ca ressemble fort a un bouquin de C++ ecrit par
>> quelqu'un qui a fait beaucoup de C et qui ne pense pas en C++.
>>
>> Un vrai bon bouquin de C++ ne va pas presenter les choses dans le
>> meme ordre.
>
>Je l'avais justement achete car ce livre était plébiscité pour son
>approche C++ pur. Il n'y ait effectivement fait aucune allusion a
>une syntaxique ou une approche du C.
>
>Je comprends l'argumentation, je suis l'élève dans ce cas de f igure
>ne peux remettre en question le jugement du professeur (mon livre).
>Néanmoins, si tu peux me conseiller un livre je suis preneur, toi q ui
>enseigne si je ne me trompe pas.

Je ne connais pas cet ouvrage, il est possible qu'il y ait un biais
dans ton approche. On t'a deja conseille "accelerated C++" qui est a
mon avis egalement un excellent bouquin d'apprentissage du C++.



Oui j'avais vu le post, la barrière de la langue...

Je comprends l'anglais technique mais j'ai peur de ne pas comprendre
les subtibilités de la langue pour l'assimilation d'un langage de
programmation -)

Merci beaucoup pour toutes vos réponses.
Avatar
loic.actarus.joly
On 7 juin, 15:34, (Marc Espie) wrote:

>Je comprends l'argumentation, je suis l'élève dans ce cas de figure ne
>peux remettre en question le jugement du professeur (mon livre).
>Néanmoins, si tu peux me conseiller un livre je suis preneur, toi qui
>enseigne si je ne me trompe pas.

Je ne connais pas cet ouvrage, il est possible qu'il y ait un biais dans
ton approche. On t'a deja conseille "accelerated C++" qui est a mon avis
egalement un excellent bouquin d'apprentissage du C++.



Je ne connais pas non plus le livre de Jessy Liberty. J'approuve par
contre pour ma part Accelerated C++, mais si un livre en français est
préféré, je rappelle que le dernier livre de Stroustrup est orienté
apprentissage, est un bon ouvrage, et a été traduit en français :
http://www.amazon.fr/Programmation-Applications-avec-Bjarne-Stroustrup/dp/2 74407442X/ref=sr_1_2?ie=UTF8&qid07520082&sr=8-2
Avatar
Olivier BURELLI
On Wed, 08 Jun 2011 01:25:08 +0200
Fabien LE LEZ wrote:

On Wed, 8 Jun 2011 01:04:05 +0000, Olivier BURELLI
:

>Je comprends l'anglais technique mais j'ai peur de ne pas comprendre
>les subtibilités de la langue pour l'assimilation d'un langage de
>programmation

Mieux vaut comprendre le quart d'un bon bouquin que l'intégralité d'un
mauvais.



Ahh L'union fait la force, Ok vous m'avez convaincu -)
Avatar
Olivier BURELLI
On Wed, 8 Jun 2011 01:02:28 -0700 (PDT)
""
wrote:

On 7 juin, 15:34, (Marc Espie) wrote:

> >Je comprends l'argumentation, je suis l'élève dans ce cas de
> >figure ne peux remettre en question le jugement du professeur (mon
> >livre). Néanmoins, si tu peux me conseiller un livre je suis
> >preneur, toi qui enseigne si je ne me trompe pas.
>
> Je ne connais pas cet ouvrage, il est possible qu'il y ait un biais
> dans ton approche. On t'a deja conseille "accelerated C++" qui est
> a mon avis egalement un excellent bouquin d'apprentissage du C++.

Je ne connais pas non plus le livre de Jessy Liberty. J'approuve par
contre pour ma part Accelerated C++, mais si un livre en français est
préféré, je rappelle que le dernier livre de Stroustrup est orient é
apprentissage, est un bon ouvrage, et a été traduit en français :
http://www.amazon.fr/Programmation-Applications-avec-Bjarne-Stroustrup/dp /274407442X/ref=sr_1_2?ie=UTF8&qid07520082&sr=8-2



Merci, du coup j'ai commande les deux... 4 book sur le C++ un sur
l'algorithmie(brainstorming), un dernier sur UML. Ma lubie me revient
cher :p

j'aurai de la lecture pour la plage...
1 2