In C++, during dynamic binding, consider the following example...
class Base
{
virtual void fun()
{
cout<<\"Base\";
}
};
class Derive
The Standard doesn't specify the mechanism by which polymorphism is implemented. All the Standard says is how it should work -- not how compiler vendors should implement it.
That being said, you have it pretty much right as far as GCC under Linux and MSVC under Windows is concerned, and I would expect most other compilers to be similar.