erreur d'initialisation consécutive de 2 pointeurs string
Bonjour,
Je viens d'experimenter une erreur qui me parait completement absurde et pour le moins incompréhensible.
Le cas d'erreur est le suivant:
je déclare 2 pointeurs vers des string (de la librairie standard) dans les attributs publics d'une classe:
Code:
1 2 3 4 5 6 7 8
|
class Simulation
{
public:
string* chaine1;
string* chaine2;
...
} |
Lorsque je défini le constructeur, j'initialise ces pointeurs
Code:
1 2 3 4 5
| Simulation::Simulation()
{
chaine1 = new string();
chaine2 = new string();
} |
Je ne fais rien d'autre avec ces chaines, je ne les utilise même pas par la suite. Le simple fait d'initialiser 2 chaines consécutivement me produit une erreur lors de l'execution du programme!
Je précise consécutivement, car lorsque je n'initialise qu'une classe à la fois, aucune erreur ne se produit, par exemple:
Code:
1 2 3 4 5
| Simulation::Simulation()
{
chaine1 = new string();
//chaine2 = new string();
} |
ou
Code:
1 2 3 4 5
| Simulation::Simulation()
{
//chaine1 = new string();
chaine2 = new string();
} |
marchent!!
Je déteste ce genre d'erreur qui ont le don de vous rendre dingue, si quelqu'un peut voir d'ou cela vient ca m'arrangerait ne serait ce que pour comprendre car la ca me dépasse!