>>25
Yes C# does, and VB.Net treats everything is an object. They then override the default reference semantics of an object with value type semantics for primitives.
This is also why C++ is not an Object Oriented Programming Language. It is a programming language with OOP constructs you can implement. Passing an object by value is not OOP but its the default for C++. You need to implement reference mechanisms everywhere yourself. C++ is not oriented twords objects, it just makes them availble for you to implement yourself.
>>24
What a surprise, a fucking idiot on this board who thinks he knows more than he does. OOP is an organization concept for high level code. CPUs don't understand high level code to begin with. They don't even understand assembly code (the CPU does not contain instructions to execute your arbitrary macros, and it doesn't inherently understand the string of characters in the mnemonics).
When you compile/assemble your code it takes your organizational constructs and reorganizes them in to the instruction set of the CPU.