Summary
If decent C++ developers and compilers are available, stick to C++.
If not, then you will have to balance the learning curve, the project complexity (which will be easied away by the language adaptability), and the available compilers.
Learning curve
In C, the learning curve for the language is easier: Your developers will more easily grasp the fundamental features of the language... C++ is a much more larger language, containing both a C subset, and a template subset, and an object subset, etc., each subset quite different from the previous one.
Fact is, it can be easy to have very inefficient code with C++. Not because "the language is slow", but because developers will sometimes code it the wrong way (usually by ignoring non-C parts of the C++ languages, like references, etc.). This is part of the "learning curve" problem.
But once the "learning curve" is over, then we can look at the language features...
Language adaptability
C is quite blunt. Either you use C's built-in constructs, and it will be easy (like, adding two integers...), or you don't, and it will be error prone, as well as potentially inefficient.
C++ makes it easy to avoid resource leaks, buffer overruns, memory or stack corruption. In C, those could happen almost at every line of code.
With inlining and encapsulation, C++ makes it easy to work efficiently and securely with any type (i.e. user-defined types). With templates and OOP, C++ makes it very very easy to extend some type with an additional feature.
Of course, all this assume C and C++ will have equally efficient compilers...
Compilers
C++ makes a lot of assumption on compilers. By reading an STL implementation, you'll see a lot of apparently useless function calls, and will wonder at the cost of all this "fancy". Fact is, the compiler will inline those away, making the resulting binary smaller that you thought possible.
But if your compiler is not able to do that, then perhaps C++ would be a bad idea.
Conclusion
1 - Is the development time of writing C++ code is longer then C?
It depends on the size/complexity of the project, and on the familiarity of your developers with the chosen language. If you have C++ developers, stick to C++.
2 - Is the maintenance cost of C++ code is cheaper then C? (I know that always will be changes in the code)
Again, it depends on the size/complexity of the project. The more complex it is, the more architecture you'll need, and thus, the more language supported features you'll need, and then, use C++.
3 - Is it easy to documents code in C++ against C? (Documents that describe how the code works)
I assume you are talking about code clarity (i.e. not Doxygen-like documentation, which works the same way for both C and C++).
It depends on how much features you use. For example, using a C++ string is quite natural, compared to the equivalent code in C. In fact, using complex structures is a lot more easier in C++ than in C...
MyMatrix A, B, C ; // My Matrix is an user-defined object
// etc.
C = A * B ; // If you believe this is anything but a
// multiplication of two matrices, then
// you need serious medical help.
There's no need to document this code. Everyone knows what a matrix is, and what a multiplication is. The same code in C would have been quite more verbose...
But then, C++ can be quite verbose, too. Without a foreach (like Boost.FOREACH), writing a loop to iterate each item in a STL container can be quite impressive :
for(std::map<int, std::string>::iterator it = myMap.begin(), itEnd = myMap.end() ;
it != itEnd ;
++it)
{
// Do something quite complicated...
}
Some C++ language features are even non-natural when coming from a procedural language, and will be part of the learning curve. And the messages resulting from a compiler error for this kind of code could break the sanity of your developers to pieces, if they are unprepared for it.
:-)
So it gets depends again on the knowledge of C++ among your developers.
My personal conclusion?
I started as a C developer. Upon learning C++, I found the language too complicated for my uses, but still, I thought some C++ features would be cool in C... Since then, after years of experience, my viewpoint changed completely. There's no way I will code in C anymore.
For me, there's no point: It's like limiting myself to move with a bike, when I could have the choice to use a bike, a car, a plane, or even my legs.
As long as your C++ compiler is Ok, and your developers know C++ (or want to learn C++), C++ can do everything C can (and usually better) and much more (remember, this is a personal viewpoint).
Post Scriptum: Is C++ used on critical apps?
Apparently, C++ is used in the F-35 (the "F-22 lite"). The following document is interesting because it shows what C++ features are really zero cost (and thus, have positive impact), and what C++ features could have a negative impact on the software:
http://www2.research.att.com/~bs/JSF-AV-rules.pdf
If C++ is good enough for this plane, then I guess C++ is good for a lot of less ambitious projects...
:-)