Bonsoir a tous

Voila j'ai un petit problème pour code ma classe Newton dérivée de Algorithme qui code
l’algorithme de Newton pour la recherche d’un zéro d’une fonction (réelle) i.e.
xn+1 = xn −f(xn)/f'(xn) (ex: f(x)=(a*x+b)^3 , f'(x)=3*a*(a*x+b)^2)

voici ma fonction Algorithme (j'espere que il y a pas d'erreur )
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
struct FctR { // Qui permet de manipuler les fonctions réelles
       virtual double operator()(double) const = 0;
       virtual double derivee(double) const = 0;
};
 
 
class AlgorithmeR { //Permet une implantation des algorithme numérique i.e : x(n+1)=g(n,x(n))
    public:
           AlgorithmeR(double valeur_init, FctR & f):x_n(valeur_init),n_iter(0),fct(f){};
           AlgorithmeR & operator++(){
                       calcul_iter();
                       ++n_iter;
                       return (*this);
           }
 
   private:
    virtual void calcul_iter() = 0;
    double x_n;
    int n_iter;
    FctR & fct;
};
 
class Cubique : public FctR { //Qui code les fonctions : f(x)=(a*x+b)^3
    public:
    Cubique(int a,int b):a(a),b(b){};
    ~Cubique(){};
    int operator()(int x)const{return (a*x+b)*(a*x+b)*(a*x+b)};
    int derivee(int x)const{return 3*a*(a*x+b)*(a*x+b)}
    private:
    int a,b;
}
Voici mon algorithme de Newton :

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
class Newton : public AlgorithmeR { 
    public:
    Newton(int x0,Cubique &c):debut(x0),cube(c){};
 
    ostream& operator<<(ostream& out, Newton const& d );
 
    Newton& operator++(int x){
    double x_N;
    x_N=x-(F(x)/derivee(x));
    } 
 
 
    private:
    int debut;
    Cubique &cube;
};
 
 
ostream& operator<<(ostream& out, Newton const& d )
    {
    out << d.cube <<endl;
    return out;
    }
voici ma fonction main():

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
int main(){
Cubique F(-3.5, 5.5); // ie a = -3.5 et b = 5.5
Newton N(5.1, F); // ie x_0 = 5.1
for (int i = 0; i <= 30; ++i) {
    cout << N << endl ;
    ++N;
    }
    return 0;
};
Comment faire pour que cela marche svp ?
Merci de votre aide !