I hope this is not all your code, and I hope you have a function main() in your file main. I did not look over all this code but the only error I see right away is that Noeud(F1,F2); is a part of a class and you call it without a class. Make an object of type Noeud and then call object.Noeud(); or take Noeud out of a class!
1. This is the whole code. It's for testing purposes.
2. Of course I have a main () ;)
3. Noeud(F1,F2) is the parameterised constructor of the Noeud class which is the problem.
My idea is that I have nodes(Noeud) and leafs(Feuille). I want that a node is able to point towards another nodes or towards leafs. That's why both Noeud and Feuille inherit from Elem, so I can be able to create a Node that points to another Node or a node that points to a leaf.
Is the above in your main function? You don't have a variable name there.
You need something like this in your main function to create a node (Noeud):
Noeud *N1 = new Noeud(F1, F2, 0.5);
By the way, since you don't actually want instances of Elem -- just instances of Classes that inherit from it -- you should treat it as an Abstract class. If you add functions to the Noeud and Feuille classes, you won't be able to access those functions using FG or FD unless they are virtual functions. Then you define them also in the child classes.
Also, why do you need a separate class for leaves? Aren't they just nodes without leaves (in code, FG and FD would be NULL)?