Is C++ an Object-Oriented language?
C++ is a multi-paradigm programming language that supports Object-Oriented and other useful styles of programming. If what you are looking for is something that forces you to do things in exactly one way, C++ isn’t it. There is no one right way to write every program – and even if there were there would be no way of forcing programmers to use it. That said, writing C-style programs in C++ is for most applications not an optimal use of C++. To be a really effective C++ programmer, you must use the abstraction mechanisms and the type system in a way that fits reasonably with their intent. Trying to ignore or defeat the C++ type system is a most frustrating experience. Writing Java-style code in C++ can be as frustrating and sub-optimal as writing C-style code in C++. For a more detailed discussion see any of my overview or style papers from my bibliography. In particular, see my OOPSLA paper “Why C++ isn’t just an Object-Oriented Programming Language”.