Explication ligne code c++

Explication ligne code c++ - C++ - Programmation

Marsh Posté le 15-07-2010 à 10:15:18    

Bonjour
J'ai besoin d'un petit coup de main :je travaille dans une structure de logiciels et j'ai un peu de mal avec la manière dont ils concoivent leur code.
Quelqu'un pourrait t'il m'expliquer en détail la description(en gros à quoi servent les mots clés tels que & , const) de cette fonction écrite ci dessous?
 
virtual int CationSession( int ID,
                                    dev::Date calibDate,  
                                    DBOpt& opts,  
                                    DBC& CD,DBVSL& VS) const = 0;
 
D'après ce que j'ai compris le const veut dire que la fonction est un accesseur(ne modifie pas les données de la classe lorsque éxécutée)
que =0 veut dire que la fonction est virtuelle pure cad que la classe dont elle est issue ne pourra être dupliquée , mais pour le reste le & qui est supposé indiquer un passage à une référence le :: je ne comprends pas trop ce que ça veut dire.
 
virtual int CationFiOn( int runeltID,
                                            const DetailsInstrument<FictOT> onet[],
                                            bool isFirstCation ) const =0;
 
De la même manière qye veut dire la ligne suivante dans ce bout de code:
 const DetailsInstrument<FictitiousOneTouch> onetouches[]
 
 
Une réponse à ces deux questions me permettarit de continuer à me démerder sans souci pour la suite de mon stage.

Reply

Marsh Posté le 15-07-2010 à 10:15:18   

Reply

Marsh Posté le 15-07-2010 à 10:27:22    

Le :: indique qu'il s'agit de l'objet Date existante dans la classe dev.

 

Pour "const DetailsInstrument<FictitiousOneTouch> onetouches[] " :
Le const indique que ce paramètre ne pourra pas être modifié dans la fonction. onetouches est un tableau de DetailsInstrument<FictitiousOneTouch>. Après il n'y a que toi qui sait qu'est un DetailsInstrument<FictitiousOneTouch>. ;)

 

Le =0 du virtuel veut dire que c'est à une classe fille d'implémenter cette fonction.


Message édité par Deamon le 15-07-2010 à 10:28:49
Reply

Marsh Posté le 20-07-2010 à 15:10:00    

Le & indique que tu passes une référence en argument de ta fonction. En faisant ça, ce que tu passes en argument ne sera pas recopié lors de l'appel à la fonction, et par ailleurs tu pourras modifier directement la variable dans ta fonction (si la fonction ne modifie pas la variable en question, ici le DBOpt, tu peux aussi passer l'argument en référence constante en écrivant "const DBOpt& opts" ). Finalement c'est la même idée que de passer des pointeurs en argument de la fonction, mais c'est plus simple d'utilisation (tu n'as pas à t'encombrer avec les * ou les -> ).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed