Salut,
Problèmes du jour:
J'ai une classe abstraite que voilà
apparament le compilateur ne semble pas apprécier que je définisse la méthode exec dans la déclaration de la classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 class A { public: virtual void exec()=0 {return;} };
Dans mon cours de langage, la définition pouvait se faire à l'intérieur de la classe. Cela atil changé??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 13 C:\Documents and Settings\Utilisateur\Bureau\test2.cpp pure-specifier on function-definition
Qu'à cela ne tienne, tentons de la définir en dehors.
J'ai mainetenant un système de classes que voila:
Ici, le compilo cale à la déclaration de "c" dans le main. car soidisant :
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
32
33
34
35 class A { public: virtual void exec()=0; }; void A::exec() { return; } class B { public: void exec(){cout << "blabla" << endl;} }; class C: public A, public B { public : using B::exec; }; int main() { C c; c.exec(); }
Je pensais qu'on pouvait définir un comportement par défaut aux méthodes virtuelles pures que s'il n'est pas redéfini par une classe fille, ce sera le comportement adopté par cette dernière.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 43 C:\Documents and Settings\Utilisateur\Bureau\test2.cpp cannot declare variable `c' to be of type `C' 43 C:\Documents and Settings\Utilisateur\Bureau\test2.cpp because the following virtual functions are abstract: 17 C:\Documents and Settings\Utilisateur\Bureau\test2.cpp virtual void A::exec()
Ou bien ça a changé??
Ou bien jai foiré quelque part dans mon code??
Partager