2010-10-22 20 views
0

Je Foo.hpp et foo.cpp, je voudrais définir une fonction virtuelle« virtuel » et en-tête des fichiers

virtual void setValue(int val){ 
} 

Est-ce que la mise en œuvre correcte suivante:

Foo.hpp

#ifndef _FOO 
#define _FOO 
class Foo{ 
    public: 
    Foo(); 
    virtual void setValue(int val); 
}; 
#endif 

foo.cpp

Foo::setValue(){ 

} 

Je me rends compte que ce serait plus facile si je le conservais dans un fichier, mais ceci est juste une simplification d'une structure plus complexe.

+0

Est-ce que ceci est destiné à être une classe de base pour un autre type? C'est à dire, il y a une barre qui hérite de foo? –

+0

Oui c'est ce que tenter de faire finalement. – Kay

+1

Si vous êtes confus à propos de la syntaxe correcte, je vous recommande d'obtenir l'un des livres que Kline mentionne pour la syntaxe légale: http://www.parashift.com/c++-faq-lite/how-to-learn-cpp.html # faq-28.6 J'ai essayé de travailler sans un de ces livres, en posant des questions sur SO sur la syntaxe et d'autres choses, et j'ai trouvé que le livre répondait mieux à la question que n'importe qui ici et m'a sauvé beaucoup de temps. Juste un petit conseil. –

Répondre

2

Votre exemple ne compilera pas, car les signatures de fonction sont différentes entre votre cpp et hpp, mais vous avez la bonne idée. Si votre fonction est nulle, il n'y a pas besoin de revenir non plus.

+0

Oups le retour était une faute de frappe, édité. – Kay