You need a language lawyer to figure out anything but the most basic interactions. For example,
1. What's the practical difference between an abstract class and an interface?
2. When do you have a copy constructor run instead of a cast on initialization if both are defined?
3. When would you use a non-virtual destructor?
What happens when you hire people? Isn't it better to have a small language that everyone understands in its entirety, and has to go out of their way to surprise you?