Aide pour un debutant en C++!!!
Salut, J'ai besoin d'un peu d'aide sur ca et ca serait gentil de me repondre. en fait, je maitrise assez bien le language C et maintenant je m'attaque au C++. j'ai fais ce petit programme pour voir l'effet du constructeur et destructeur. Or ce programme ne veut pas fonctionner et le compilateur me sort un linker erreur. Vous pouvez m'aider à voir où se trouve mon erreur. Merci d'avance.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
#include<iostream.h>
class test
{ static int n;
int x,y;
public:
test();
~test();
};
test::test()
{ n++;
cout << "il y'a" << n << "objets";
}
test::~test()
{ n--;
cout << "il reste" << n << "objets";
}
main()
{ test s,t;
void f();
f();
}
void f()
{ test m;
} |
Re: Aide pour un debutant en C++!!!
sinon bienvenu au club.
chui parfois agressif, mais c'est pour la bonne cause :wink:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| #include<iostream>
class test
{
private:
static int n;
int x,y;
public:
test();
~test();
};
test::test()
{
n++;
cout << "il y'a" << n << "objets";
}
test::~test()
{
n--;
cout << "il reste" << n << "objets";
}
main()
{
test s,t;
f();
}
void f()
{
test m;
} |
Re: Aide pour un debutant en C++!!!
Citation:
Envoyé par bigboomshakala
sinon bienvenu au club.
chui parfois agressif, mais c'est pour la bonne cause :wink:
merci mais je viens deja ici (t'as qu'à voir ma date d'inscription) mais pas pour ecrire. je lis seulement. or cette fois j'avais besoin d'aide.
Re: Aide pour un debutant en C++!!!
Il me semble qu'on est obligé de définire les variables membres static en dehors de la déclaration de la classe
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
class test
{
private:
static int n;
int x,y;
public:
test();
~test();
};
int test::n = 0; // <-- ICI ! |
Re: Aide pour un debutant en C++!!!
Citation:
Envoyé par jmv
Il me semble qu'on est obligé de définire les variables membres static en dehors de la déclaration de la classe
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
class test
{
private:
static int n;
int x,y;
public:
test();
~test();
};
int test::n = 0; // <-- ICI ! |
c'est effectivement ca, je pnesais que les membres statics etaient automatiquement initialisés à 0. !!! merci à tous ceux qui m'ont aidés. :wink: