|Is it true that with c++ you cannot create a operating system|
Not exactly.... You COULD try to make your own OS using c++ and probably you could do it, but c++ is not SUITABLE to make an OS, while C is a better choice in this case.
The problem is the "binary compatibility" of c++ object files ("Managing Access Points through modules" etc)
This is related to "C++ flexibility" -> Infact, unlike C, there is not a unique way to translate a c++ into an object binary file (and create an executable).... every compiler has its own way to do it, expecially when you use, for example, templates.
So... a binary created with c++ is more "compiler binded" than a binary created with c.
This means that if you, for any reason, will use a different compiler for a piece of your OS or you will use a different compiler to create an application (different one from the one used to build your own OS), you CAN encounter this problem: The application could be builded correctly, but when you run it you risk to see an error that forbid you to execute the application.
C++ could be not a good choice to make an OS also if you think about hardware / driver calls (mostly are all pointer calls and must happen low-level)..... Using C++ in order to develop your own OS could risk to make your OS not efficient.
The "Binary compatibility problem inside C++" is also explained well in this tutorial, where it is discussed about how to create a plugin framework (where, becouse of binary restrictions of c++, you will see you are invited to use a mix of C and C++).
(You can limit your read of the first 2 pages of the Part1 I linked)
About c++ and Android I would recomend Qt libraries too..... even if I never tried to make an Android application, I am sure it is a good suggestion