Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#101 Le 06/11/2007, à 12:15

aganim07

Re : Questions sur la P.O.O. (C++ et JAVA)

Luc Hermitte a écrit :

Salut,

aganim07 a écrit :

Au fait, pensez-vous que j'ai acquis un bagage suffisant pour réussir un entretien pour une mission en développement C++ ?
Quel est le style de question qu'un recruteur peut poser pour vérifier les compétences d'un candidat en C++ ?

Tout va dépendre de comment tu te vends, et de ce qu'ils cherchent.
J'ai envie de dire qu'il vaut mieux être honnête. Le C++ est un langage difficile, et ceux qui le connaissent le savent pertinemment.

Sinon, je m'étais déjà exprimé, ainsi que d'autres personnes, par là:
http://www.developpez.net/forums/showthread.php?t=354056

PS: c'est bien une surcharge
PPS: C++ pour les nuls est un mauvais bouquin (Accelerated C++ est très bien si tu lis l'anglais technique -- contrairement au farfadet, je ne conseille pas le livre de Stroustrup pour apprendre le langage, juste pour avoir une référence sous le coude)

Le profil recherché est C++/matheux. Donc je me vendrai un peu sur les deux tableaux. Je ne suis ni l'un ni l'autre dans l'absolu. Mais j'ai des connaissance dans les deux et comme le background est la finance, bah de ce côté je suis même en avance smile Il faut voir quoi...

Hors ligne

#102 Le 06/11/2007, à 16:01

Le Farfadet Spatial

Re : Questions sur la P.O.O. (C++ et JAVA)

Salut à tous !

   Bon, j'ai vérifié, Stroustrup parle bien de surcharge dans le sens que j'utilise.

aganim07 a écrit :
Le Farfadet Spatial a écrit :

Puis-je te conseiller un ouvrage ?

   À bientôt.

                                                                                                                                            Le Farfadet Spatial

Oui.

Bjarne Stroustrup. Le Langage C++. Pearson Education, 2003.

   Surpris ?

Au fait, pensez-vous que j'ai acquis un bagage suffisant pour réussir un entretien pour une mission en développement C++ ?
Quel est le style de question qu'un recruteur peut poser pour vérifier les compétences d'un candidat en C++ ?

[...]

Le profil recherché est C++/matheux.

[...]

le background est la finance

Dis-donc, tu ne postulerais pas à la Société Générale, par hasard ?

   Quant à savoir ce que l'on va te poser comme question, ben... Ça dépend. De toute façon, le langage est suffisamment riche pour pouvoir trouver une question qui plongera le candidat dans des abîmes de perplexité, quant bien même cela fait dix ans qu'il utilise le langage.

   Ce qui est essentiel, c'est de savoir programmer et d'avoir acquis de l'aisance dans un langage. Ensuite, de toute façon lorsque l'on code on a (ou devrait avoir) toujours un livre de référence sous la main.

   En tout cas, mon expérience personnelle est que les recruteurs ne manie généralement pas le C++, mais Visual C++, ce qui est sensiblement différents.

   À bientôt.

                                                                                                                     Le Farfadet Spatial

Hors ligne

#103 Le 06/11/2007, à 16:07

aganim07

Re : Questions sur la P.O.O. (C++ et JAVA)

Ok. Bon bah moi j'ai commencé depuis hier dans ma SSII. Je me faisais une joie d'enchainer des entretiens pour des missions C/C++ en environnement bancaire.

Le problème est que je suis en inter-contrat depuis deux jours maintenant (ça c pas trop grave) mais on ne me propose aucun entretien. Je viens tous les jours au siège (toute la journée) et je ne sers à rien. Ca ne fait que 48h mais ça me gonfle déjà... Ca commence à me déprimer neutral

Hors ligne

#104 Le 06/11/2007, à 20:47

telliam

Re : Questions sur la P.O.O. (C++ et JAVA)

t'inquietes pas qd j'étais en SSII, j'ai fait plusieurs semaines en intercontrat, il faut juste patienter.
Fait le pied de grue devant le bureau de ton commercial,parfois ca marche;)

Pour ce qui est du bagage technique, ne t'inquietes pas trop la personne qui est en  face de toi sait tres bien que tu es un débutant et l'aspect technique rentre parfois tres peu en jeu dans un entretien, c'est surtout la motivation qui compte ( et surtout le prix pratiqué par ta SSII tongue ).

Je te conseille de dire que tu connais un peu le C++ mais que tu as peu d'expérience professionnel dans le domaine.


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#105 Le 07/11/2007, à 11:04

aganim07

Re : Questions sur la P.O.O. (C++ et JAVA)

telliam a écrit :

t'inquietes pas qd j'étais en SSII, j'ai fait plusieurs semaines en intercontrat, il faut juste patienter.
Fait le pied de grue devant le bureau de ton commercial,parfois ca marche;)

Pour ce qui est du bagage technique, ne t'inquietes pas trop la personne qui est en  face de toi sait tres bien que tu es un débutant et l'aspect technique rentre parfois tres peu en jeu dans un entretien, c'est surtout la motivation qui compte ( et surtout le prix pratiqué par ta SSII tongue ).

Je te conseille de dire que tu connais un peu le C++ mais que tu as peu d'expérience professionnel dans le domaine.

Même quand on vient de débarquer dans la boite ? Je veux dire par là que je trouve ça bizarre d'embaucher qqn pour le placer en intercontrat et puis pouf plus rien...
J'habite loin de la SSII et venir chaque jour perdre son temps au siège toute la journée je ne trouve pas que ça dénote bcp d'une image sérieuse, de qualité etc...

Hors ligne

#106 Le 07/11/2007, à 11:39

telliam

Re : Questions sur la P.O.O. (C++ et JAVA)

aganim07 a écrit :

Même quand on vient de débarquer dans la boite ? Je veux dire par là que je trouve ça bizarre d'embaucher qqn pour le placer en intercontrat et puis pouf plus rien...
J'habite loin de la SSII et venir chaque jour perdre son temps au siège toute la journée je ne trouve pas que ça dénote bcp d'une image sérieuse, de qualité etc...

Il vaut mieux pour toi avoir été embauché pour ton profil plutot que pour une mission bien précise, cela veut dire que ton profil est interessant et recherché.
Pour ce qui est de l'intercontrat, certaines boites permettent à leurs ingénieurs de rester chez eux, mais c'est qd mm très rare.
Essaye de mettre ce temps à profit pour t'entrainer à coder des trucs, c'est toujours ça de pris.

Je veux pas te casser le moral mais si tu es dans une importante SSII, tu n'es qu'un CV parmi tant d'autres.
Par contre si je peux te donner un conseil, controle toujours le CV que ton commercial donne aux clients, ca t'évitera qu'il rajoute des compétences que tu n'as pas et ça t'évitera de ramer à l'entretien devant le client.


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#107 Le 07/11/2007, à 11:42

aganim07

Re : Questions sur la P.O.O. (C++ et JAVA)

En fait je suis dans une petite SSII. C'est pour cela que ça me parait d'autant plus bizarre... Je suis hyper mal à l'aise car je suis entouré de gens qui font du PHP (moi qui n'y connait rien du tout) et je suis là sur MSN à rien glander...

Si au mois j'avais des entretiens... Mais niet.

Hors ligne

#108 Le 07/11/2007, à 11:46

telliam

Re : Questions sur la P.O.O. (C++ et JAVA)

aganim07 a écrit :

En fait je suis dans une petite SSII. C'est pour cela que ça me parait d'autant plus bizarre... Je suis hyper mal à l'aise car je suis entouré de gens qui font du PHP (moi qui n'y connait rien du tout) et je suis là sur MSN à rien glander...

Si au mois j'avais des entretiens... Mais niet.

eh bien profites en pour apprendre aussi le PHP wink
Pour ce qui est des entretiens c'est le problème de ton commercial pas le tien.

de plus, rien ne t'empêche de regarder ailleurs;)
donne moi le domaine dans lequel tu voudrais bosser, je pourrais peut être te conseiller sur les points à connaitre.


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#109 Le 07/11/2007, à 11:50

aganim07

Re : Questions sur la P.O.O. (C++ et JAVA)

Je souhaite faire du développement en C ou en C++, au service du secteur bancaire. Implémenter des modèles de pricing (calculs de prix etc...) ou pourquoi pas travailler dans une équipe IT. Honnetement je les ai cotoyés pendant 6 mois lors de mon stage de fin d'étude et leur job semblait largement à ma portée.

Voili voilou...

Hors ligne

#110 Le 07/11/2007, à 11:55

telliam

Re : Questions sur la P.O.O. (C++ et JAVA)

IT ?? kesako?
a mon avis, il faut aussi que tu ais une compétence java.
pour la partie C/C++, en plus de connaitre le language, il faut aussi que tu ais des connaissances de process de developpment, de cycle en V, d'outils de gestion de source, d'analyse de code statique.

Et surtout apprend à maitriser un debugger, je sais que cette phrase peut paraitre bizarre mais d'expérience un mec qui est capable de corriger des problèmes est mieux vu qu'un mec qui code sans faire de bugs.


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#111 Le 07/11/2007, à 12:00

aganim07

Re : Questions sur la P.O.O. (C++ et JAVA)

telliam a écrit :

IT ?? kesako?
a mon avis, il faut aussi que tu ais une compétence java.
pour la partie C/C++, en plus de connaitre le language, il faut aussi que tu ais des connaissances de process de developpment, de cycle en V, d'outils de gestion de source, d'analyse de code statique.

Et surtout apprend à maitriser un debugger, je sais que cette phrase peut paraitre bizarre mais d'expérience un mec qui est capable de corriger des problèmes est mieux vu qu'un mec qui code sans faire de bugs.

IT = Information Technology

Hors ligne

#112 Le 07/11/2007, à 16:13

aganim07

Re : Questions sur la P.O.O. (C++ et JAVA)

Youpiiiiiiiiiiiiiiiiiiiiiiiiii !!!!!!!!!!!!!!!!!!
J'ai enfin été convoqué par le patron de la SSII dans son bureau. Il s'est déplacé sur mon lieu de stage pour voir sil il y avait des opportunités pour moi et visiblement oui. En fait je rejoindrais le même projet que celui sur lequel je travaillais en stage mais côté technique. Par contre, on m'a parlé de compétences en JAVA et là je n'y connais rien !

Hors ligne

#113 Le 07/11/2007, à 17:29

aganim07

Re : Questions sur la P.O.O. (C++ et JAVA)

On m'a parlé d'une mission pour faire de la réalisation. De la réalisation c'est quoi ?
C'est du développement ou pas ??

Hors ligne

#114 Le 07/11/2007, à 22:30

telliam

Re : Questions sur la P.O.O. (C++ et JAVA)

oui ca doit etre du codage mais pas de conception.


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#115 Le 07/11/2007, à 22:34

aganim07

Re : Questions sur la P.O.O. (C++ et JAVA)

telliam a écrit :

oui ca doit etre du codage mais pas de conception.

cad ? De la maintenance de code ?

Hors ligne

#116 Le 07/11/2007, à 22:38

Le Farfadet Spatial

Re : Questions sur la P.O.O. (C++ et JAVA)

Salut à tous !

aganim07 a écrit :

cad ? De la maintenance de code ?

A priori, cela signifie que tu auras un cahier des charges et des interfaces et qu'il va te falloir pisser du code...

   Sans doute pas très palpitant, mais très bien pour prendre de l'expérience sur un langage.

   À bientôt.

                                                                                                                                                Le Farfadet Spatial

Hors ligne

#117 Le 07/11/2007, à 22:51

aganim07

Re : Questions sur la P.O.O. (C++ et JAVA)

Hmmm ça me parait louche. Je vous explique pourquoi. L'équipe que j'intègrerais je la connais très bien. C'est l'équipe informatique avec laquelle je bossais quand j'ai fait mon stage de maitrise d'ouvrage à la BNP il y a un mois. Donc en gros ils font surtout du support de production. Moi ça ne me dérange pas trop à priori mais à condition de bcp coder à côté. Mais honnêtement je ne vois pas ou est le code là dedans. A part modifier quelques buziness rules écrites en Java par ci par là. Mais ça reste très minime.

Déjà ne serait-ce que parce que le projet en question est administré via un logiciel commercial vendu par une autre entreprise. Donc code fermé et accès à rien du tout. Seules les business rules sont accessibles : en gros des fragments de codes en java qui permettent de régler la façon dont le programme fonctionne. Le dit programme est l'interface graphique d'un référentiel, une base de données centrale quoi.

Hmmm ça me parait très bizarre tout ça ^^'
Je me demande si on ne me dit pas ce que j'ai envie d'entendre.

Pour info, je n'ai jamais vu les membres de l'équipe faire vraiment du code d'ailleurs. Même pas du tout...
C'est plus du support de production qu'autre chose. Ce n'est pas du code à proprement parlé. Donc je reste méfiant. Maintenant c mieux que l'intercontrat alors je me vois mal refusé la mission hmm

Dernière modification par aganim07 (Le 07/11/2007, à 22:54)

Hors ligne

#118 Le 08/11/2007, à 11:00

aganim07

Re : Questions sur la P.O.O. (C++ et JAVA)

Que penses-tu de ça ?

Future* pOption;
pOption = new Option;
pOption->affiche();

Justement j'ai du mal à voir ou tu veux en venir avec cela...
Là tu crées un pointeur sur un future. Ce pointeur tu le fais pointer sur une option (déjà je comprends pas comment le programme peut compiler). Ensuite ce pointeur de future qui pointe sur une option tu lui apppliques la méthode affiche() mais là comment le programme sait si il doit lancer Option::affiche() ou Future::affiche() ????

Perso le fait de pouvoir taper ce qui est au dessus fait que je ne comprend plus rien.
En gros on peut faire n'importe quoi alors ? On peut faire ça ?

int a=3;
string zozo="Coucou";
int* pointer;
pointer = zozo; // au lieu de pointer = a;

Bah si on peut faire ça désolé mais pour moi le C++ n'est plus un langage typé fortement structuré. C'est plutôt un gros merdier informe... Pfff je commence à me décourager...

Dernière modification par aganim07 (Le 08/11/2007, à 11:08)

Hors ligne

#119 Le 08/11/2007, à 12:06

aganim07

Re : Questions sur la P.O.O. (C++ et JAVA)

D'autre part, j'ai une autre question à vous soumettre. Je préfère vous avertir que la question est archi compliquée à formuler mais pourtant elle est bien réelle. La voici :

Compte-tenu de mon nouveau programme ci-dessous (dans lequel le constructeur de Future appelle le constructeur de Sousjacent pour instancier action), et compte-tenu du fait que le constructeur de Sousjacent a des arguments (S et sigma), j'ai décidé de préciser dans le constructeur de Future que l'instance action doit être construite en utilisant les valeur de S et sigma passées en argument du constructeur de Future (sinon je ne pouvais plus réellement passer d'argument jusqu'au constructeur de Sousjacent car le constructeur de Future me gênait pour le faire. Est-ce compréhensible ?

En gros, j'ai modifié la partie signalée dans le constructeur de Future dans le fichier methodes.cpp...

classe.h

#ifndef CLASSE_H
#define CLASSE_H

#include<iostream>
using namespace std;


/*=== Classe Sousjacent ===*/

class Sousjacent {
      
      private:
             float S;				// Spot
			 float sigma;		    // Volatilité (implicite)
      
      public:
             Sousjacent(float S=0., float sigma=0.);    // Constructeur
             ~Sousjacent();					            // Destructeur
             void affiche();			                // Méthode affiche
};


/*=== Classe Future ===*/

class Future {
      
      private:
             string issue_date;		//Format : yyyy/mm/dd
			 string maturity_date;	//Format : yyyy/mm/dd
             float K;				// Strike
			 float P;				// Price
			 float rendement;		// Taux de rendement
			 Sousjacent action;     // Sous-jacent du future
      
      public:
             Future(string issue_date="empty",          // Constructeur
                    string maturity_date="empty", 
                    float K=0., 
                    float P=0., 
                    float rendement=0., 
                    float S=0., 
                    float sigma=0.);
             ~Future();					                // Destructeur
             void affiche();						    // Méthode affiche
};


/*=== Classe Option ===*/
// Cette classe hérite de la classe Future

class Option : public Future {
      
      private:
			 string cp;         // Si il s'agit d'un Call ou d'un Put
      
      public:
             Option(string cp="unknown");           // Constructeur
             ~Option();					                // Destructeur
             void affiche();						    // Méthode affiche
};


#endif

methodes.cpp

// methodes.cpp


/*=== Header ===*/

#include<iostream>
#include<string>
#include<vector>
#include"classe.h"
using namespace std;


/*=========================================*/
/*========== METHODES Sousjacent ==========*/
/*=========================================*/


/*=== Constructeur Sousjacent ===*/

Sousjacent :: Sousjacent(float  S, float  sigma) {

	cout << "Construction de l'objet Sousjacent" << endl;
	
	this->S = S;
	this->sigma = sigma;
}


/*=== Destructeur ~Sousjacent ===*/

Sousjacent :: ~Sousjacent() {
	cout << "Destruction de l'objet Sousjacent" << endl;
}


/*=== Méthode affiche ===*/

void Sousjacent :: affiche(){

     cout << "Spot S =  "          << S    << endl;
     cout << "Volatilité sigma = " << sigma << endl;
}


/*=====================================*/
/*========== METHODES Future ==========*/
/*=====================================*/


/*=== Constructeur Future ===*/

Future :: Future(string issue_date, 
                 string maturity_date, 
                 float  K, 
                 float  P, 
                 float  rendement, 
                 float  S,                                     // ICI ICI ICI ICI !!!!!!!!!!!!!!!!!!!!
                 float  sigma) : action(S, sigma) {   // ICI ICI ICI ICI !!!!!!!!!!!!!!!!!!!!

	cout << "Construction de l'objet Future" << endl;
	
	this->issue_date = issue_date;
	this->maturity_date = maturity_date;
	this->K = K;
	this->P = P;
	this->rendement = rendement;
}


/*=== Destructeur ~Future ===*/

Future :: ~Future() {
	cout << "Destruction de l'objet Future" << endl;
}


/*=== Méthode affiche ===*/

void Future :: affiche(){

     cout << "La date d'émission est : "  << issue_date    << endl;
     cout << "La date de maturité est : " << maturity_date << endl;
     cout << "Strike K = "  << K          << endl;
	 cout << "Price P = "   << P          << endl;
	 cout << "Rendement = " << rendement  << endl << endl;
}


/*=====================================*/
/*========== METHODES Option ==========*/
/*=====================================*/


/*=== Constructeur Option ===*/

Option :: Option(string cp) {

	cout << "Construction de l'objet Option" << endl;
	
	this->cp = cp;
}


/*=== Destructeur ~Option ===*/

Option :: ~Option() {
	cout << "Destruction de l'objet Option" << endl;
}


/*=== Méthode affiche ===*/

void Option :: affiche(){

     cout << "L'option est un " << cp << endl << endl;
}

main.cpp

// main.cpp


/*=== Header ===*/

#include<iostream>
#include<string>
#include<vector>
#include"classe.h"
using namespace std;


/*=== Fonction main ===*/

int main(int argc, char* pargs[]) {

    Future* pFuture;		   // INSTANCE de la classe Future
	pFuture = new Future;      // Méthode dynamique
    pFuture->affiche();	       // équivalent à (*pFuture).affiche();
	delete pFuture;            // Appel manuel du destructeur
	pFuture = 0;               // Pointeur inutile positionné sur NULL
	
	Option* pOption;
	pOption = new Option;
	pOption->affiche();
	delete pOption;
	pOption = 0;

    system("PAUSE");           //Cette instruction fonctionne sous Dev Cpp avec Windows XP
    return 0;
    
}

Ceci étant, et en espérant que les classes Future et Sousjacent sont maintenant correctement codées, comment faire la classe Option ??

En effet, non seulement la classe Option hérite de la classe Future car une option n'est ni plus ni moins qu'un future sauf qu'il peut s'agir d'un call ou d'un put (d'ou le nouveau membre cp).

Mais en plus la classe option a aussi un membre de type Sousjacent dont le nom est action. Donc comment dire au constructeur de Option qu'il devra aussi faire passer les valeurs de S et sigma au constructeur de Sousjacent ? Il faut faire la même chose qu'avec le constructeur de Future ?

Ou bien comme Option hérite de Future, ce n'est pas utile... Honnêtement j'espère que vous comprenez mon charabia. Mais ça devient l'enfer cette situation !!

Merci smile

Hors ligne

#120 Le 08/11/2007, à 14:57

$Gaël$

Re : Questions sur la P.O.O. (C++ et JAVA)

Salut !

aganim07 a écrit :

Mais en plus la classe option a aussi un membre de type Sousjacent dont le nom est action. Donc comment dire au constructeur de Option qu'il devra aussi faire passer les valeurs de S et sigma au constructeur de Sousjacent ? Il faut faire la même chose qu'avec le constructeur de Future ?

Il faut effectivement que tes deux constructeurs aient les mêmes arguments et que le fils passe les arguments nécessaires au père par liste d'initialisation

//=== Classe Sousjacent ===

class Sousjacent {
      
      private:
             float S;                // Spot
             float sigma;            // Volatilité (implicite)
      
      public:
             Sousjacent(float S=0., float sigma=0.);    // Constructeur
           //...
};

//=== Classe Future ===

class Future {
      
      private:
             //...
             Sousjacent action;     // Sous-jacent du future
      
      public:
             Future(string issue_date="empty",          // Constructeur
                    string maturity_date="empty", 
                    float K=0., 
                    float P=0., 
                    float rendement=0., 
                    float S=0., 
                    float sigma=0.);
           //...
};

//=== Classe Option ===
class Option : public Future {
      
     //...
      public:
             Option(string issue_date="empty",          // Constructeur
                    string maturity_date="empty", 
                    float K=0., 
                    float P=0., 
                    float rendement=0., 
                    float S=0., 
                    float sigma=0.,
                    string cp="unknown");        
            //...
};
//=== Constructeur Sousjacent ===
Sousjacent :: Sousjacent(float  S, float  sigma) {
   //...
    this->S = S;
    this->sigma = sigma;
}

//=== Constructeur Future ===
Future :: Future(string issue_date, 
                 string maturity_date, 
                 float  K, 
                 float  P, 
                 float  rendement, 
                 float  S,                                     
                 float  sigma)
{   
    this->issue_date = issue_date;
    this->maturity_date = maturity_date;
    this->K = K;
    this->P = P;
    this->rendement = rendement;
    action(S, sigma) 
}

//=== Constructeur Option ===
Option :: Option(string issue_date,          // Constructeur
                    string maturity_date, 
                    float K, 
                    float P, 
                    float rendement, 
                    float S, 
                    float sigma,
                    string cp)
:Future(issue_date, maturity_date, K, P, rendement, S,                                      sigma)
 {
    //...
    this->cp = cp;
}

J'ai repassé le constructeur de de action dans le corps du constructeur de Future parce que selon moi il ne doit pas être en liste d'initialisation mais je n'en suis pas sur c'est peut-être une erreur. Pour moi :
liste d'initialisation = ( initialisation constructeur Parent OU initialisation constante )
Je demande confirmation/infirmation !! wink

Ensuite quelques commentaires... ("Il nous fait ch*** l'autre à râler !!" tongue)
Pour moi:
1 classe = 2 fichiers
    1 fichier nommé nom_classe.h : déclaration
    1 fichier nommé nom_classe.cpp : implémentation
et donc chaque classe dans des fichiers séparés....

Bon courage pour ton boulot ! smile

Dernière modification par $Gaël$ (Le 08/11/2007, à 14:59)


Ubuntu is an ancient african word meaning : "I can't configure Debian".

Hors ligne

#121 Le 08/11/2007, à 18:49

Link31

Re : Questions sur la P.O.O. (C++ et JAVA)

action(S, sigma)

Cette ligne, dans un corps de fonction, appelle Sousjacent::operator()(float, float) qui n'est pas défini. Si tu veux appeler le constructeur de action dans le corps de Future::Future(), il faut utiliser :

action = A(S, sigma);

Mais appeler le constructeur d'un membre dans le corps du constructeur de la classe revient à appeler une deuxième fois ce constructeur, vu que le constructeur par défaut est appelé automatiquement avant l'entrée dans le corps de fonction.
Il faut donc initialiser le membre action dans la liste d'initialisation de Future::Future() (ou le transformer en pointeur et créer une instance où tu le désires avec new).

Hors ligne

#122 Le 09/11/2007, à 02:13

Le Farfadet Spatial

Re : Questions sur la P.O.O. (C++ et JAVA)

Salut à tous !

   Puisque les autres se chargent du pragmatique, je m'occupe de la philosophie !

aganim07 a écrit :

Bah si on peut faire ça désolé mais pour moi le C++ n'est plus un langage typé fortement structuré.

Je pense que tu voulais écrire fortement typé et structuré...

   Cela dit, C++ permet la programmation structurée dans son ensemble. Par contre, à cause de l'héritage de C, il n'est pas fortement typé. Toutefois, on se garantit de la plupart des erreurs de typage si l'on s'impose la règle de ne jamais utiliser la conversion de type C. C'est d'autant plus faisable qu'il existe d'autres mécanismes recouvrant tout ce que permet la conversion de type C et plus encore.

   Toutefois, l'exemple donné est un exemple de polymorphisme un peu complexe (ce genre de polymorphisme n'autorise pas le typage statique et c'est sans doute ce qui te chagrine), mais c'est loin d'être n'importe quoi. Par contre, je te conseille de ne pas t'embêter avec ces histoires, il sera bien temps d'y revenir après : d'un côté, ce type de polymorphisme est l'une des grandes souplesses de C++, de l'autre, ça a tendance à rendre les codes difficiles à comprendre. En fait, la très grande souplesse de C++ a un prix et ce prix, c'est que ce langage est vraiment compliqué...

   À bientôt.

                                                                                                                                            Le Farfadet Spatial

Hors ligne

#123 Le 09/11/2007, à 15:16

aganim07

Re : Questions sur la P.O.O. (C++ et JAVA)

Oyé, Oyé,

Etant donnée la mauvaise tournure que les événements prennent dans ma SSII, il n'est pas dit du tout que ma première mission soit du développement. Ca sera plutôt du support de production. La mission en C++ que je visais ne me sera ps donnée car le client demande un profil plus expérimenté...

J'avoue que, question motivation, je suis assez terrassé. Bref du coup je me suis décidé à me mettre à un langage de développement vraiment utile dans le monde de l'entreprise : le Java ! Tout le monde me dit que ça au moins c'est un vrai langage objet. Et qu'il ne me faudra pas un boulot sorti de derrière les fagots pour développer en Java...

Du coup j'ai acheté le livre "Programmer en Java" de Delanoy. Fort heureusement, au stade d'apprentissage du C++ que j'avais atteint, rien n'est perdu. J'ai juste constaté des différences de notation (et de philosophie du langage). Globalement, je trouve le Java plus simple pour l'instant.

Donc je poserai bientot des questions en Java au lieu de C++ mais finalement tout ça c'est de la POO donc je pense qu'on s'y retrouvera wink

Dernière modification par aganim07 (Le 09/11/2007, à 15:17)

Hors ligne

#124 Le 09/11/2007, à 16:04

aganim07

Re : Questions sur la P.O.O. (C++ et JAVA)

/*=== QUESTION 1 EN JAVA ===*/

Voici ma première question en Java. Apparement, ce langage n'intègre rien par défaut pour lire une donnée entrée par l'utilisateur (comme un scanf ou un std::cin).

Donc j'ai récupéré une classe Clavier.java qui permet de faire ceci.
Mais les développeurs Java en général font vraiment cela ?
J'imaginais qu'il existait quand même une solution plus pro...

Au passage, je vous donne l'avancement de mon code actuel. Je réécris tout en Java.

MaClassePrincipale.java

public class MaClassePrincipale
{
	public static void main(String args[])
	{
		Action a;
		a = new Action(3.,5.);
		a.affiche();
		
		Future f;
		f = new Future(10., 6., "10/06/2008");
		f.affiche();
	}
}

Action.java

public class Action
{
	public Action(double S, double vol)
	{
		this.S = S;
		this.vol = vol;
	}

	public void affiche()	// Accessor
	{
		System.out.println("Je suis une Action de spot = " + S);
		System.out.println("de vol = " + vol);
	}
	
	private double S;	// spot
	private double vol;	// volatilité implicite
}

Future.java

public class Future
{
	public Future(double P, double K, String maturity)
	{
		this.P = P;
		this.K = K;
		this.maturity = maturity;
	}
	
	public void affiche()	// Accessor
	{
		System.out.println("Je suis un Future de price = " + P);
		System.out.println("de strike = " + K);
		System.out.println("de date de maturité = " + maturity);
	}
	
	private double P;			// Price
	private double K;			// Strike
	private String maturity;	// Date de maturité
}

Clavier.java (ce n'est pas de mon crû)

// Classe fournissant des fonctions de lecture au clavier


import java.io.* ;
public class Clavier
{ public static String lireString ()   // lecture d'une chaine
  { String ligne_lue = null ;
    try
    { InputStreamReader lecteur = new InputStreamReader (System.in) ;
      BufferedReader entree = new BufferedReader (lecteur) ;
      ligne_lue = entree.readLine() ;
    }
    catch (IOException err)
    { System.exit(0) ;
    }
    return ligne_lue ;
  }
  public static float lireFloat ()   // lecture d'un float
  { float x=0 ;   					 // valeur à lire
    try
    { String ligne_lue = lireString() ;
      x = Float.parseFloat(ligne_lue) ;
    }
    catch (NumberFormatException err)
    { System.out.println ("*** Erreur de donnée ***") ;
      System.exit(0) ;
    }
    return x ;
  }
  public static double lireDouble ()   // lecture d'un double
  { double x=0 ;   // valeur a lire
    try
    { String ligne_lue = lireString() ;
      x = Double.parseDouble(ligne_lue) ;
    }
    catch (NumberFormatException err)
    { System.out.println ("*** Erreur de donnée ***") ;
      System.exit(0) ;
    }
    return x ;
  }
  public static int lireInt ()         // lecture d'un int
  { int n=0 ;   // valeur a lire
    try
    { String ligne_lue = lireString() ;
      n = Integer.parseInt(ligne_lue) ;
      }
    catch (NumberFormatException err)
    { System.out.println ("*** Erreur de donnée ***") ;
      System.exit(0) ;
    }
    return n ;
  }

   // Programme de test de la classe Clavier
  public static void main (String[] args)
  { System.out.println ("Donnez un flottant") ;
    float x ;
    x = Clavier.lireFloat() ;
    System.out.println ("Merci pour " + x) ;
    System.out.println ("Donnez un entier") ;
    int n  ;
    n = Clavier.lireInt() ;
    System.out.println ("Merci pour " + n) ;
  }
}

Dernière modification par aganim07 (Le 09/11/2007, à 16:04)

Hors ligne

#125 Le 09/11/2007, à 16:24

verbose

Re : Questions sur la P.O.O. (C++ et JAVA)

Depuis la version 1.5, il existe une solution plus simple qui repose sur la classe java.util.Scanner.

Scanner scan = new Scanner(System.in);
String cmd = scan.nextLine()
scan.close();

Hors ligne