It's interesting you should say that, because that's less the case today than it was a few years ago. You see C# and Java native interfaces (sometimes written in C#) used more and more.
C++ is a higher-risk, higher-maintenance language. You don't use it unless you have the following two cases:
1.) You need extremely high speed or efficiency.
2.) The C++ implementation is going to be faster than an implementation in a more maintainable language like C#.
Even then, you try to wrap a JNI around the code if possible for a Java-based service. The old model of Java front-end, C++ pricing engine back-end is disappearing.