Salut,
Problèmes du jour:
J'ai une classe abstraite que voilà
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;}
};
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
 
13 C:\Documents and Settings\Utilisateur\Bureau\test2.cpp pure-specifier on function-definition
Dans mon cours de langage, la définition pouvait se faire à l'intérieur de la classe. Cela atil changé??

Qu'à cela ne tienne, tentons de la définir en dehors.
J'ai mainetenant un système de classes que voila:

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();
}
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
 
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()
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.

Ou bien ça a changé??
Ou bien jai foiré quelque part dans mon code??