OVH Cloud OVH Cloud

[Debutant] Probleme de destruction

120 réponses
Avatar
Yoxoman
Bonjour à tous.

Je me permet de vous soumettre ce petit programme, qui représente en
gros la partie qui me pose problème d'un truc plus gros :

#include <iostream>

using namespace std;

class Vecteur
{
public:
double *val;
int taille;

Vecteur() {}
Vecteur(int i);
~Vecteur() {cout << "detruit" << endl; delete[] val;}

Vecteur foisDeux();
Vecteur &operator=(const Vecteur &v);
};

Vecteur::Vecteur(int i)
{
taille=i;
val=new double[i];
}

Vecteur Vecteur::foisDeux()
{
Vecteur temp(taille);

for (int i=0; i<taille; i++)
{
temp.val[i]=2*val[i];
}

return temp; //(1)
}

Vecteur &Vecteur::operator=(const Vecteur &v)
{
taille=v.taille;
val=new double[taille];

for (int i=0; i<taille; i++)
{
val[i]=v.val[i];
}

return *this;
}

int main(void)
{
Vecteur v1(3);
Vecteur v2;

v2=v1.foisDeux(); //(2)

return 0;
}

Segmentation fault.
J'ai tout d'abord eu du mal à identifier le problème, mais j'ai réussi
grâce à des supers pouvoirs hérités de Goldorak.
En fait, à la fin de la fonction foisDeux(), la variable temporaire
temp est détruite. Logique. En même temps, la fonction renvoie une
copie de l'objet, qui possède donc dans ses attributs un pointeur sur
une zone mémoire inaccessible (action du delete[]). Problème donc à la
destruction de ce dernier.

En fait, je ne sais pas trop comment arranger ce problème. Je ne
voudrais pas modifier *directement* les attributs de v1 dans la
fonction foisDeux(), pour garder ce vecteur en stock.

Merci d'avance pour votre aide.

10 réponses

Avatar
Gabriel Dos Reis
"Alain Naigeon" writes:

| "Gabriel Dos Reis" a écrit dans le message
| news:
|
| > "Alain Naigeon" writes:
| > | loin, et ma petite expérience à moi c'est qu'elles rendent la notion de
| > | pointeur pas aussi échevelée que certains le disent...
| >
| > La question est : est-ce que tu comprends vraiment ce que « certains
| > disent » ? Mon petit doigt me dit que non. Je serais heureux de
| > constater qu'il se trompe...
|
| Mais c'est sûr que, par rapport à toi, je suis un débutant, et je ne doute
| pas
| que tu trouverais des exemples où ma compréhension serait en défaut. Est-ce

Mais, tu n'es pas ce j'appelle un débutant en programmation avec C++,
malgré l'énergie remarquable que tu dépenses pour me le faire croire.

| que ça prouve pour autant que ce que j'ai acquis ne vaut rien ? Par rapport

Pourquoi quelqu'un vroudrait affirmer cela ?

| à quelqu'un qui n'a jamais vu de pointeur (ou qui a du mal à les comprendre,
| j'ai connu des gens comme ça, par ailleurs pas du tout mauvais), là je ne
| suis pas un débutant.

Voir ce que j'ai écrit plus haut.

| Il y a autre chose : je n'ai pas pris l'initiave de reprendre ce débat ; il
| se
| trouve que, cette fois-ci, c'est quelqu'un (Olivier) qui, à vue de nez, a
| une expérience, y compris professionnelle. Peut-être même est-il chef
| de projet (?), et je me demande si ce n'était ton secret espoir quand
| tu as balancé une remarque sur les mauvais chefs de projets ;-)

Pardon ? Là, je ne te suis pas du tout. Toute explication que tu
approterais dans ce sens serait la bienvenue -- à moins bien sûr, que
tu ne retractes encore ton affirmation (ce qui deviendrait comme une
ennuyeuse habitude).

| Alors bon, je suis sûr que ton expérience d'enseignement est positive,
| mais toi tu sembles avoir du mal à admettre que d'autres fonctionnent
| aussi.

Mais pas du tout. Je veux simplement voir ces autres approches
marcher. Ce que je dis, c'est que j'ai trop vu en pratique les
approches dont il était question mener à un résultat déplorable.
Je veux bien croire que c'est une constation unique. Mais lorsque je
regarde les approches pris des bouquins récents comme ceux de
Koenig&Moo, je me dis que ce n'est pas un phénomène local. J'ai aussi
lu des revues de ces bouquins qui enseignent le C++ comme si c'était
juste le C avec le mot clé « class ». Ce que je te propose, c'est de
regarder les données concrètes.

[...]

| invoquer l'incompétence de l'autre ; d'autre part, en refusant de transposer
| un argument d'un autre domaine, tu te mets totalement à l'abri, et le
| débat est donc verrouillé ;-)

Bah non, je ne refute pas l'argument tant qu'on me montre sa
pertinence. Mais si tu en es incapable et tu en viens à invoquer
l'argument du « plus fort ici », j'en conclus simplement que
l'argument ne devait pas tenir.
Mais je ne désespère pas que tu daignes un jour montrer la pertinence de
l'analogie.

-- Gaby
Avatar
Alain Naigeon
"Alain Naigeon" writes:

| "Gabriel Dos Reis" a écrit dans le
message

| news:
| > "Alain Naigeon" writes:
| > | Dans mon souvenir, tu faisais partie des gens qui avaient dit ça,
| > | mais je me suis donc trompé, et je constate avec plaisir que tu
| > | ne considère pas ça comme un argument.
| >
| > Non, non, reprenons. Tu affirmes quelque chose et j'aimerais savoir
| > exactement dans quel contexte je l'ai dit -- je ne dis pas que tu t'es
| > trompé ou non.
|
| Y aurait-il un malentendu ? Quand je dis "je me suis trompé", ça veut

Non, tu as dit "je me suis *donc* trompé" -- l'emphase est mienne.


Il change quoi le "donc" ? Il veut dire que si tu me dis que tu n'as pas
dit ça, alors je te crois sans discussion. Je te crédite (donc) d'une totale
bonne foi, et c'est ça qui te pose problème ?
Je trouve que tu réponds souvent par des pirouettes (comme ce "donc"),
et ce n'est pas la meilleure façon de rester bien installé entre ton clavier
et ton écran ;-)

Ce que je voudrais comprendre, c'est toute la suite d'évènements qui
t'a amené à penser que j'ai dit quelque chose (que je ne refute ni
n'infirme pas d'ailleurs) et ta subite retraction. Parce que les deux
sont tombés pouf comme ça.


C'est beaucoup plus simple que ça. Cet argument avait été utilisé
par l'un des tenants de la thèse que tu défends aussi (approche par
la stl au début, etc). Comme tu es l'un des plus ardents et brillants
défenseurs de cette méthode, j'ai cru, en toute bonne foi, que toi
aussi tu l'avais utilisé. Tu m'as affirmé que non. Je t'ai cru. Où est
le problème ????????????????

Je crois que tu t'es perdu quelque part : un raisonnement a été fait,
basé sur une analogie. J'ai questionné et demandé simplement que la
pertinence de l'analogie soit montrée. Cela n'a rien à avoir avec
l'apprentissage.


Bien sûr, bien sûr, sauf que : l'analogie ne portait pas sur le contenu
à enseigner, elle portait sur la façon d'enseigner, qui a certain rapport
avec l'apprentissage !

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France

Avatar
Gabriel Dos Reis
"Alain Naigeon" writes:

| > "Alain Naigeon" writes:
| >
| > | "Gabriel Dos Reis" a écrit dans le
| message
| > | news:
| > | > "Alain Naigeon" writes:
| > | > | Dans mon souvenir, tu faisais partie des gens qui avaient dit ça,
| > | > | mais je me suis donc trompé, et je constate avec plaisir que tu
| > | > | ne considère pas ça comme un argument.
| > | >
| > | > Non, non, reprenons. Tu affirmes quelque chose et j'aimerais savoir
| > | > exactement dans quel contexte je l'ai dit -- je ne dis pas que tu t'es
| > | > trompé ou non.
| > |
| > | Y aurait-il un malentendu ? Quand je dis "je me suis trompé", ça veut
| >
| > Non, tu as dit "je me suis *donc* trompé" -- l'emphase est mienne.
|
| Il change quoi le "donc" ?

« donc » coordonne au moins deux choses. Et c'est ce que je veux comprendre.

| Il veut dire que si tu me dis que tu n'as pas
| dit ça, alors je te crois sans discussion.

Aha, nous y voilà. Voici, ce que j'ai écrit dans un précédent message
(celui auquel tu réponds) :

Ce que je voudrais comprendre, c'est toute la suite d'évènements qui
t'a amené à penser que j'ai dit quelque chose (que je ne refute ni
n'infirme pas d'ailleurs) et ta subite retraction.

ce qui est contraire à ton affirmation « si tu me dis que tu n'as pas
dit ça, alors je te crois sans discussion. »

| Je te crédite (donc) d'une totale bonne foi, et c'est ça qui te pose
| problème ?

non, ce qui me pose problème, c'est ton incohérence.

| Je trouve que tu réponds souvent par des pirouettes (comme ce "donc"),
| et ce n'est pas la meilleure façon de rester bien installé entre ton clavier
| et ton écran ;-)

si prendre quelqu'un en flagrant délit d'incohérence est ce que tu
considères une pirouette alors je suis bien installé dans entre mon
clavier et mon écrna. Merci.

| > Ce que je voudrais comprendre, c'est toute la suite d'évènements qui
| > t'a amené à penser que j'ai dit quelque chose (que je ne refute ni
| > n'infirme pas d'ailleurs) et ta subite retraction. Parce que les deux
| > sont tombés pouf comme ça.
|
| C'est beaucoup plus simple que ça. Cet argument avait été utilisé
| par l'un des tenants de la thèse que tu défends aussi (approche par
| la stl au début, etc). Comme tu es l'un des plus ardents et brillants
| défenseurs de cette méthode, j'ai cru, en toute bonne foi, que toi
| aussi tu l'avais utilisé. Tu m'as affirmé que non. Je t'ai cru. Où est
| le problème ????????????????

Le problème est que tu sembles avoir inventé deux fois de suite des
choses que tu prétends j'aurais dit :

(1) l'affirmation que tu as retractée ;
(2) que je t'ai dit que je ne l'ai pas affirmée.

| > Je crois que tu t'es perdu quelque part : un raisonnement a été fait,
| > basé sur une analogie. J'ai questionné et demandé simplement que la
| > pertinence de l'analogie soit montrée. Cela n'a rien à avoir avec
| > l'apprentissage.
|
| Bien sûr, bien sûr, sauf que : l'analogie ne portait pas sur le contenu
| à enseigner,

Ah ?

-- Gaby
Avatar
Alain Naigeon
"Gabriel Dos Reis" a écrit dans le message
news:

Mais pas du tout. Je veux simplement voir ces autres approches
marcher. Ce que je dis, c'est que j'ai trop vu en pratique les
approches dont il était question mener à un résultat déplorable.
Je veux bien croire que c'est une constation unique.


Ah mais pas forcément, en fait je ne sais pas. Simplement ça ne
peut pas "mettre à la poubelle" le fait que dans d'autres cas, et
pour certaines personnes, ça leur a appris tout de même pas mal
de choses.

Mais lorsque je
regarde les approches pris des bouquins récents comme ceux de
Koenig&Moo, je me dis que ce n'est pas un phénomène local. J'ai aussi
lu des revues de ces bouquins qui enseignent le C++ comme si c'était
juste le C avec le mot clé « class ». Ce que je te propose, c'est de
regarder les données concrètes.


Ok, c'est possible. Il est vrai aussi que les débutants d'aujourd'hui n'ont
pas la même histoire, donc ils ne sont pas réceptifs aux mêmes façons
d'enseigner, je suppose. N'empêche que, lorsqu'une notion paraît
difficile à quelqu'un, mon expérience c'est qu'il faut essayer plusieurs
approches. Parfois une explication, une image, une analogie déclenche
un déclic, après plusieurs autres infructeuses, et c'est parfois difficile
de comprendre rationnellement pourquoi - les gens sont différents,
voilà.
Et puis, je peux être réceptif à une vraie argumentation, par exemple
si tu me disais : ok, ton approche elle va t'emmener jusqu'à un certain
point, mais ensuite tu vas être bloqué ; si tu veux vraiment devenir un
expert, il faut faire autrement... Ok, pourquoi pas ? Mais par contre,
entendre "tu as tort parce que tu es moins bon que moi", tu vois, ça ne
convaincra jamais.

Pour ce qui précédait (un propos de toi , ou pas ?), je reporte mon
enquête car ce soir, ici, il est plus que temps d'allumer les feux de
croisement ;-)

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France

Avatar
Gabriel Dos Reis
"Alain Naigeon" writes:

[...]

| > Mais lorsque je
| > regarde les approches pris des bouquins récents comme ceux de
| > Koenig&Moo, je me dis que ce n'est pas un phénomène local. J'ai aussi
| > lu des revues de ces bouquins qui enseignent le C++ comme si c'était
| > juste le C avec le mot clé « class ». Ce que je te propose, c'est de
| > regarder les données concrètes.
|
| Ok, c'est possible. Il est vrai aussi que les débutants d'aujourd'hui n'ont
| pas la même histoire, donc ils ne sont pas réceptifs aux mêmes façons
| d'enseigner, je suppose. N'empêche que, lorsqu'une notion paraît
| difficile à quelqu'un, mon expérience c'est qu'il faut essayer plusieurs
| approches. Parfois une explication, une image, une analogie déclenche
| un déclic, après plusieurs autres infructeuses, et c'est parfois difficile

Oui, mais là encore tu sembles faire un autre débat : je ne dis pas
que l'analogie en soi est à bânir. Wouaouh, tu parles quelle langue ?

| de comprendre rationnellement pourquoi - les gens sont différents,
| voilà.
| Et puis, je peux être réceptif à une vraie argumentation, par exemple
| si tu me disais : ok, ton approche elle va t'emmener jusqu'à un certain
| point, mais ensuite tu vas être bloqué ; si tu veux vraiment devenir un
| expert, il faut faire autrement... Ok, pourquoi pas ? Mais par contre,
| entendre "tu as tort parce que tu es moins bon que moi", tu vois, ça ne
| convaincra jamais.

Je t'ai dit ça ?

| Pour ce qui précédait (un propos de toi , ou pas ?), je reporte mon
| enquête car ce soir, ici, il est plus que temps d'allumer les feux de
| croisement ;-)

Mais, je serai tout à fait heureux de savoir précisemment dans quele
contexte je l'aurais tenut -- car

(1) je ne retiens pas tout ce que je dis ;
(2) tu en conviendras avec moi, j'espère, tu ne sembles pas retenir
des propos sous tes yeux ce qu'ils disent. Nous en avons des
exemples dans ce thread même.

-- Gaby
Avatar
Alain Naigeon
[réponse à Gaby, à propos de "mauvais chefs de projets"]

En fait, malgré l'heure tardive, je viens de chercher quand même,
et je retrouve ceci :

"Gabriel Dos Reis" a écrit dans le message
news:
Olivier Azeau writes:

| Gabriel Dos Reis wrote:
| > Olivier Azeau writes:
| > | Mais tu fais quoi quand tu as une librairie tierce qui ne te
| > propose
| > | que des factories qui créent dans le tas et que tu n'as besoin de
| > | l'objet que le temps d'un appel de fonction ?
| > Mauvais fournisseur, changer de fournisseur. Ou, si la chose est
| > important pour le projet, investir dedans. Si ce n'est pas important
| > pour le projet, ...
| >
| Oui, c'est beau la théorie...

Je parle de la pratique et non une théorie. En fait, une pratique que
j'ai vécue plusisurs fois. Si la chose est importante pour le projet,
on y investit.
Mais je ne nie pas l'existance de mauvais managers, dans ce cas c'est
le manager qu'il faut blâmer.


Il semble pour cette fois je gagne le tie-break - sauf si tu refuses que
l'on
traduise "[project] manager" par chef de projet !

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France


-- Gaby


Avatar
Alain Naigeon
"Gabriel Dos Reis" a écrit dans le message
news:
"Alain Naigeon" writes:
| entendre "tu as tort parce que tu es moins bon que moi", tu vois, ça ne
| convaincra jamais.

Je t'ai dit ça ?


Oui, tu as dis que certainement des aspects pointus m'échapperaient
si tu me soumettais donnais un exemple de ce genre à résoudre (ce
que je ne nie pas).

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France


| Pour ce qui précédait (un propos de toi , ou pas ?), je reporte mon
| enquête car ce soir, ici, il est plus que temps d'allumer les feux de
| croisement ;-)

Mais, je serai tout à fait heureux de savoir précisemment dans quele
contexte je l'aurais tenut -- car

(1) je ne retiens pas tout ce que je dis ;
(2) tu en conviendras avec moi, j'espère, tu ne sembles pas retenir
des propos sous tes yeux ce qu'ils disent. Nous en avons des
exemples dans ce thread même.

-- Gaby



Avatar
Alain Naigeon
"Gabriel Dos Reis" a écrit dans le message
news:
"Alain Naigeon" writes:

| > "Alain Naigeon" writes:
| >
| > | "Gabriel Dos Reis" a écrit dans le
| message
| > | news:
| > | > "Alain Naigeon" writes:
| > | > | Dans mon souvenir, tu faisais partie des gens qui avaient dit
ça,

| > | > | mais je me suis donc trompé, et je constate avec plaisir que tu
| > | > | ne considère pas ça comme un argument.
| > | >
| > | > Non, non, reprenons. Tu affirmes quelque chose et j'aimerais
savoir

| > | > exactement dans quel contexte je l'ai dit -- je ne dis pas que tu
t'es

| > | > trompé ou non.
| > |
| > | Y aurait-il un malentendu ? Quand je dis "je me suis trompé", ça
veut

| >
| > Non, tu as dit "je me suis *donc* trompé" -- l'emphase est mienne.
|
| Il change quoi le "donc" ?

« donc » coordonne au moins deux choses. Et c'est ce que je veux
comprendre.


| Il veut dire que si tu me dis que tu n'as pas
| dit ça, alors je te crois sans discussion.

Aha, nous y voilà. Voici, ce que j'ai écrit dans un précédent message
(celui auquel tu réponds) :

Ce que je voudrais comprendre, c'est toute la suite d'évènements qui
t'a amené à penser que j'ai dit quelque chose (que je ne refute ni
n'infirme pas d'ailleurs) et ta subite retraction.

ce qui est contraire à ton affirmation « si tu me dis que tu n'as pas
dit ça, alors je te crois sans discussion. »


Je ne comprends plus rien, c'est trop retords pour moi. Dans le brouillard
où je suis, essayant de te comprendre, je ne sais si cette remarque aura la
moindre pertinence : j'ai poursuivi la discussion car cet argument n'était
pas
le seul, la discussion avec toi et d'autres étant intéressante sur ce point,
ce n'était
pas une raison suffisante pour l'arrêter : le simple fait que tu n'aie pas
utilisé l'argument
ne voulait évidement pas dire que tu as avais changé de position.



| Je te crédite (donc) d'une totale bonne foi, et c'est ça qui te pose
| problème ?

non, ce qui me pose problème, c'est ton incohérence.

| Je trouve que tu réponds souvent par des pirouettes (comme ce "donc"),
| et ce n'est pas la meilleure façon de rester bien installé entre ton
clavier

| et ton écran ;-)

si prendre quelqu'un en flagrant délit d'incohérence est ce que tu
considères une pirouette alors je suis bien installé dans entre mon
clavier et mon écrna. Merci.


Bah tu sais, la cohérence peut aussi fonctionner comme une médaille,
sans rapport, parfois, avec ce qu'on est vraiment. Regarde un fil qui vient
de parler, une fois de plus, de garbage collector. Moi qui, dans une
certaine
mesure, comprends et aime les pointeurs, eh bien, j'aimerais bien que le
langage propose (facultativement) un GC. Incohérence ? Par ailleurs, je
suis sûr que parmi les tenants de ta thèse concernant l'apprentissage
retardé
des pointeurs, il y a des gens farouchement opposés au GC. Incohérence ?
En fait je ne crois pas. Chaque partie accorde un poids différent au GC,
selon
son habitude des pointeurs et de ce qu'ils apportent. (comment faire une
liste
chaînée sans pointeurs ?) En oubliant le prix à payer de s'en passer, à
savoir
une certaine proportion d'erreurs de destruction. Mais les gens qui
manipulent
les pointeurs sont donc bien envie d'éviter cette gestion fastidieuse et
parfois
difficile carrément (notamment quand plusieurs objets sont confiés à
plusieurs
containers). Par conséquent, l'incohérence n'est qu'apparente, dans le cas
d'un GC facultatif : on gère tous les standard qui éviteront bien des bévues
ou oublis, et l'on garde la possibilité de gerer soi-même les cas
particuliers
qu'on juge néfaste de leur confier (dans mon esprit un bon GC doit être
facultatif jusqu'au point de permettre de lui confier seulement certains
pointeurs ou types de pointeurs, les autres étant toujours gérés à la main)
Moi j'ai fait une hastable template instanciée par le type du pointeur,
détruite en fin de programme. On lui confiait un pointeur par > on en
redevenait propriétaire par < Mais on peut aussi à tout moment lui
demander la destruction de l'objet pointé par un pointeur quelle possède,
et alors elle remet à zero ce pointeur qui pourrait être utilisé à tort par
l'appelant si quelques lignes plus loin il a oublié la destruction.
L'idée à la base, c'est de régler un certains de motifs d'erreurs
fréquentes,
mais sans pénaliser l'occupation mémoire qui serait inacceptable dans
certains
cas si tous les pointeurs devaient rester intacts jusqu'à la fin de
l'exécution.
Quand la fin d'une étape rend inutile tous les objets concernés, eh bien,
il suffit d'avoir alloué statiquement le GC pour ce type au début d'un bloc,
donc en sortie de bloc le GC détruit tout ce qui ne l'aurait pas été
explicitement
entre-temps. C'est simple, ça marche bien, mais évidemment ça necessite
une coopération honnête du code source (comme approche facultative,
il me semble).

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France

--

Avatar
Olivier Azeau
wrote:
Olivier Azeau wrote:

Gabriel Dos Reis wrote:
Apprendre à se servir de la bilbiothèque standard. Oui. On n'a
besoin d'aucun talent particulier des templates.


Ouais... C'est avec des arguments comme ça que les auto-écoles vont
apprendre à faire les créneaux avec un radar de recul sous prétexte
que c'est en "standard" sur les voitures.


Analogie, il me semble, serait plutôt des auto-écoles qui apprendre
à
démarrer la voiture, et de la faire avancer à la vitesse voulue en
ligne
droite, avant de apprendre à faire des créneaux en marche en
arrière.

En ce qui concerne ton analogie, elle a plusieurs défauts :

- Les radars de recul ne sont pas standard. Il existe bien des
voitures qui ne les ont pas. Tandis que std::vector et std::string
font bien partie de C++ -- s'ils ne sont pas présents, ce n'est
pas
du C++.


Oui, d'où ma conjugaison au futur (qui j'espère est un futur hypothétique)


- Apprendre d'abord à faire des créneaux avec le radar de recul,
puis
ensuite sans, ne serait peut-être pas une mauvaise idée. Si on ne
l'a pas essayée encore, c'est sans doute que les radar de recul
sont
encore assez rare. Il n'est pas question que les élèves
n'apprenent
jamais des pointeurs. Seulement qu'ils les apprenent plus tard,
quand ils ont déjà maîtriser des choses plus simples.


C'est exactement ce qui me gêne : "les apprendre plus tard".
Si j'apprends avec un radar de recul, qu'est ce qui va me motiver pour
*ensuite* apprendre sans ?
Pareil pour les pointeurs : personne ne me fera écrire une classe string
à la main si qqun d'autre m'a déja montré std::string


J'ajouterai que cette philosophie n'est pas vraiment une innovation,
sauf dans la mésure qu'elle s'applique au C++ (et encore -- j'ai vu de
l'enseignement de C++ il y a 15 ans qui se servait des classes de
String
et d'Array « maison » pour éviter d'avoir à aborder les pointeurs
trop
tôt). C'est en fait l'ordre classique dans d'autres langages, comme
Pascal. (Voir l'ordre de présentation de Wirth, par exemple.) Je
dirais
qu'on enseigne le C++ comme ça, c'est une signe d'une certaine
maturité.


De quelle "maturité" parle-t-on ?
Celle où on forme des gens au C++ en leur apprenant à faire un paquet de
trucs sans pointeurs, pointeurs qu'un certain nombre d'entre eux ne
maîtriseront jamais ?

Olivier.



Avatar
Gabriel Dos Reis
"Alain Naigeon" writes:

| Je ne comprends plus rien, c'est trop retords pour moi.

Je crois que si tu as les idées claires sur ce que tu dis, cela ne
devrait pas être trop difficile ;-p.

[...]

| mesure, comprends et aime les pointeurs, eh bien, j'aimerais bien que le
| langage propose (facultativement) un GC. Incohérence ? Par ailleurs, je
| suis sûr que parmi les tenants de ta thèse concernant l'apprentissage
| retardé
| des pointeurs, il y a des gens farouchement opposés au GC. Incohérence ?

Ni l'une, ni l'autre. Il y a beaucoup de choses dans « pointeur » et
je crois que tu fais allègrement la confusion entre elle.
Java, par exemple, ne manipule essentiellement que des pointeurs, mais
c'est un langage avec GC. Le truc, c'est d'arriver à faire la
différence entre les différentes facettes d'un pointeur et voir que tu
présentes comme « ma thèse ».

[...]

| containers). Par conséquent, l'incohérence n'est qu'apparente, dans le cas

L'incohérence dont je parle est dans tes propos, où dans un message tu
m'attribues quelque et dans l'autre finalement non. Je ne pense pas
que tu arriveras à la cacher avec un GC ;-p.

-- Gaby