pb le dynamic_cast ne marche pas,

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
	Struc *struc = new Struc();
	Plate *plate = dynamic_cast<Plate*> (struc);
	if ( plate!=NULL ) {
		string dimensions = "dimensions.dat";
		plate->setdimension(dimensions);
	}
et la definition de mes classes est :
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
class Struc {
 
	public:
		int _numberOf_TL;
		int _numberOf_LL;
		int _maxNumberOf_TL;
		int _maxNumberOf_LL;
		int _typeOf_LL;
		int _typeOf_TL;
		Longeron* _pLongitudinalLongeron;
		Longeron* _pTransversalLongeron;
	public:
		Struc();
		~Struc();
		void setnumberOf_TL(int i);
		void setnumberOf_LL(int i);
		void setmaxNumberOf_TL(int i);
		void setmaxNumberOf_LL(int i);
		int getnumberOf_TL();
		int getnumberOf_LL();
		int getmaxNumberOf_TL();
		int getmaxNumberOf_LL();
		void settypeOfLL(int i);
		void settypeOfTL(int i);
		int gettypeOfLL();
		int gettypeOfTL();
		void setLongitudinalLongeron(Longeron& p);
		Longeron* getLongitudinalLongeron();
		void setTransversalLongeron(Longeron& p);
		Longeron* getTransversalLongeron();
		virtual void computeMaxNumberOfLongitudinalStiffeners();
		virtual void computeMaxNumberOfTransversalStiffeners();
		void load();
		virtual void setdimension(string dim);
};
 
class Plate : public Struc {
 
	private:
		double _length;
		double _width;
	public:
		Plate(void);
		Plate(double a, double b);
		void setLength(double f);
		void setWidth(double f);
		double getLength();
		double getWidth();
		void computeMaxNumberOfLongitudinalStiffeners();
		void computeMaxNumberOfTransversalStiffeners();
		void setdimension(string dim);
};
merci
xavier