Can you please realize that OOP is not a language-dependent feature. It's a programming method, which can be used on pretty much any language - even assembler, you just have to build the abstractions yourself.
NONE of the features which you claim are necessary for OOP actually are. Namespaces are irrelevant, do you know anything about name mangling? Yeah, those C++ methods of yours are actually converted to C functions at compile time, and the namespace, class name etc. are appended to the function name, according to a complex scheme. So in the end there is no practical difference to a function and a method. And also, you actually CAN access private data directly in C++, because C++ doesn't have real runtime encapsulation.