quzar, ofcourse one shouldn't create lots of objects just because you want to use OOP. If you program is as small as that you can fit it all in the main-function in either C or C++. If you are reading at a university or equal, I would suggest that you take a course about code design and design patterns.
Btw, I don't see your point about the "Hello world!" program either. Someone showed you an example of how it looks in c++ and you see that they aren't that different. So one can't say that one of them is better than the other. Also, std::cout is an object... an ostream derivate I belive, with the <<-operator overloaded.
In commercial applications, OOP is pretty much the only way to go (unless of course you are the only coder working with it) because it pretty much forces a fixed standard of coding on you and allows for multiple people to work on a project without having seen all the code (easily).
Yes, and that's the reason for why I use OOP. Even though I work alone at a lot of projects I still want to keep the door open for other people to join in easily and help me out without them having to know all the code. And also the subsystem class dividing makes it easier to write good code that you can reuse in other projects. Maybe you can easily lift out a resource manager that takes care of all the resource loading or the input subsystem and use in different projects. Since all subsystems are always written with high cohesion and low coupling in mind, they shouldn't need any components from another subsystem to get working. I believe that this kind of structuring is easier to manage/extend/reuse with OOP than without it.
About getting extra speed from using C. You have probably heard of the term "90% of the time is spent in 10% of the code". So write that 10% in assembly and you are set
. But if you can do a high level optimization (using better algorithms), it will probably give you more speed than these low level optimizations.
BlackAura, So you use C because C++ is too much like it that it wouldn't really matter which you use?
The difference is that C++ is a far more complex language, and thus working around all those little problems is far more complicated.
In what way? Didn't you just say that C++ handles it the same way as C?
I agree that C#, Java etc. does a better job than C++ in terms of making it easy to write complex programs. However, the problem is that these high level languages aren't compiled into machine code. They aren't made with the acctual machine in mind.
C was made with assembly in mind. C++ was made with C in mind. You wanted to be able to have total control over the machine while still being able to use the new object oriented way of thinking. C++ is like a compromiss to join in the best features of both low level and high level