Chères amies, chers amis du forum
J'ai créer une classe Abstraite var_alea:
et une classe Gauss
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #ifndef __VAR_ALEA_H_ #define __VAR_ALEA_H_ #include <cmath> #include <ctime> #include <cmath> #include <ctime> #include <cstdlib> #include <numeric> #include <cstring> #define MAX(A,B) ( (A) > (B) ? (A):(B) ) #define MIN(A,B) ( (A) < (B) ? (A):(B) ) #define PI 3.14159265358979 #define DEUXPI 6.283185306 #define PI2 1.570796326794 class var_alea { public: var_alea() {}; virtual ~var_alea() {}; virtual double operator()() = 0; protected: }; #endif
Gauss.h
Gauss.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #ifndef GAUSS_H #define GAUSS_H #include "var_alea.h" #include "Uniform.h" class Gauss : public var_alea { public : Gauss (double moy=0, double sigmadeux=1) : m_moy(moy), m_sigmadeux(sigmadeux) { } Gauss (const Gauss &); double operator ()(); Gauss & operator =(const Gauss &); friend Gauss operator +(const Gauss &, const Gauss &); private : double m_moy, m_sigmadeux ; }; #endif
main.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #include "Gauss.h" double Gauss::operator()() { Uniform U1, U2; double V1, V2; double S = 2; while (S>=1) { V1 = U1(); V2 = U2(); V1 = 2.0*(V1 + 0.00001)-1.0; V2 = 2.0*(V2 + 0.00001)-1.0; S = V1*V1 + V2*V2; }; return (m_moy + m_sigmadeux*(V1*sqrt((-2.0*log(S))/S))); }; Gauss & Gauss::operator=(const Gauss &n) { m_moy = n.m_moy; m_sigmadeux = n.m_sigmadeux; return *this; } Gauss operator+ (const Gauss &n,const Gauss &m) { Gauss p (n.m_moy + m.m_moy,n.m_sigmadeux + m.m_sigmadeux); return p; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include "Uniform.h" #include "Poisson.h" #include "Gauss.h" #include <iostream> int main() { srand(time(0)); Gauss G; return 0; };
La surcharge de l'operateur + pose probleme et voici le message d'erreur:
Pourriez vous m'aider SVP?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Gauss.cpp 1>Gauss.obj : error LNK2019: symbole externe non résolu "public: __thiscall Gauss::Gauss(class Gauss const &)" (??0Gauss@@QAE@ABV0@@Z) référencé dans la fonction "class Gauss __cdecl operator+(class Gauss const &,class Gauss const &)" (??H@YA?AVGauss@@ABV0@0@Z) \Projet.exe : fatal error LNK1120: 1 externes non résolus ========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
Merci
Partager