IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Probleme appel de fct dans une autre classe


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Probleme appel de fct dans une autre classe
    Bonjour a tous,

    je suis en 5eme et derniere annee d ecole d ingé en finance de marché et on fait pas mal de c++

    Voila mon pb:

    on a du definir une classe Zc_curve avec cette interface (voila mon .h)

    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
    class Zc_curve
    {
          protected:
          std::list<Rate> L;
     
          public:
          Zc_curve(int dd, int mm, int yyyy);
          double get_rate(double mat);
          double get_bond_value(double mat);
          double get_swap_rate(int M, double tau);
          double get_forward_swap_rate(double T, int M, double tau);
     
          private:            
    };
    #endif
    donc dans mon main par exemple je cree un nouvel objet :
    Zc_curve zc(a,b,c);
    et j apppel ma fonction get_bond_value(double mat) comme ca : zc.get_bond_value(2);

    jusque la tt est bon.

    Maintenant je dois faire une classe Swaption avec cette interface:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class Gaussian_Swaption
    {
    protected:
     
    Gaussian_Swaption(double T0, int M , double a , double sigma ,
    double strike , double tau , Zc_curve& zc);
    double option_pricing( );
    private:
    };
    comme vous le voyez en dernier argument y a un objet de type Zc_curve !
    et je dois me reservir de la fct get_bond_value(double mat);

    mais il bug.....alors j ai tenté de mettre un #include "Zc_curve.h" ca marche pas, ou encore un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double x;
    x=Zc_curve::get_bond_value(2);
    mais ca marche pas...

    quelqu un peut il me sauver ?
    en bref je veux me servir dans la classe Swaption de la fonction get_bond_value() qui a été défini dans la classe Zc_curve

    merci a tous

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut

    Comme la classe est accédée par référence, un simple prototype de classe peut suffire.
    Rajoute:
    Avant de définir ta classe Gaussian_Swaption.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    x=Zc_curve::get_bond_value(2);
    La méthode get_bond_value () n'est pas static, il va te falloir une instance de Zc_curve pour l'utiliser comme dans l'exemple que tu donnes avant.
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    une instance ca signifie koi?

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    un objet de ce type, quoi...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre actif Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Points : 248
    Points
    248
    Par défaut
    Les méthodes statiques sont des méthodes qui concernent ta classe Zc_curve.
    Les méthodes non-statiques sont des méthodes pour des objets de type Zc_curve.

    Un exemple que j'avais trouvé plutôt bien pour comprendre : une classe voiture, avec un membre prochaineImmatriculation qui contient le prochain numéro d'immatriculation qui sera distribué.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class voiture {
          private:
                string immatriculation;
                static string prochaineImmatriculation;
                string couleur;
                ...
     
          public:
                string getCouleur();
                static string getProchaineImmatriculation();
                ...
    };
    La méthode getCouleur n'est pas statique car propre à chaque voiture qui va être instanciée (instanciée = créée) : chaque voiture a sa couleur. Par contre, la méthode getProchaineImmatriculation est statique car elle concerne ta classe voiture et non plus un objet de cette classe.

    Voilà pour les méthodes statiques et non-statiques. Pour en revenir à ton problème, pourquoi le constructeur de la classe Gaussian_Swaption est en protected et pas en public, et comment crées-tu ton objet de type Gaussian_Swaption ?
    Chen norris
    C/C++, C#, Java, PHP & SQL coder
    Web developer

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Je sais pas pourquoi, le .h est imposé par notre prof, c'est lui qui decide ce qui sera en public ou private

    pour creer l objet de type swaption que j appelerai test par ex, on fera comme ca:

    Gaussian_Swaption test(double T0, int M , double a , double sigma ,
    double strike , double tau , Zc_curve& zc);

    ou T0,M,a,sigma,strike,tau seront des entiers ou double
    et zc un objet de zc_curve, ces objet zc_curve servait a entrer une date pr lire ensuite un fichier genre : zc_curve zc(1,1,2001) => lisait un fichier de donnée du 01/01/2001 puis on y appliquait plusieurs fct de calcul pour les formules vus en cours

Discussions similaires

  1. Appel Variable statique dans une autre classe ?
    Par noula_27 dans le forum Langage
    Réponses: 6
    Dernier message: 15/01/2013, 23h06
  2. Appeler un tableau dans une autre classe
    Par jasinski13 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 28/05/2011, 14h43
  3. Réponses: 3
    Dernier message: 14/09/2010, 10h14
  4. Appel membre static dans une autre classe
    Par cyriltec dans le forum C#
    Réponses: 2
    Dernier message: 12/04/2010, 11h23
  5. Probleme d'apel de fonction dans une autre classe
    Par freecell31 dans le forum MFC
    Réponses: 24
    Dernier message: 13/05/2006, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo