How the V-Table mechanism works?
Answers were Sorted based on User's Feedback
Answer / dee
V-table is created for class when a class has atleast one
virtual function and each virtual function has a entry in
the V-table.
Is This Answer Correct ? | 48 Yes | 3 No |
Answer / nishikant sahu
V-Table holds the addresses of virtual functions of a class
and type_info structure for RTTI.V-table created class basis.
when an object created compiler secretly inserted the
v-table pointer of the respective class and then Vptr
iterator accordingly. all are done under the hood.
Is This Answer Correct ? | 21 Yes | 3 No |
Answer / ramesh
V-table is specific to class. No matter how many objects
are created for this class, only one virtual table exists.
Each virtual function in the class will have a pointer in
Vtable.
Whenever a code like Base *b = new Derived; is encountered,
during compile time the search will happen in Base class.
Its only during run time the actual objects are invoked and
the fucntion present in derived class will be called.
Is This Answer Correct ? | 6 Yes | 1 No |
Answer / deepa balamurugan
If the both Base and the Derived class having the same
function then the Base class funtion should be declared as
virtual function. Then the C++ determines which function to
be called at the runtime based on the type of the object
pointed to by the Base pointer rather than the type of the
pointer.
As soon as the compiler reads the keyword virtual ,it will
create the vtable contains the address of the virtual
function inside that class and as soon as vtable is
created ,vptr is initialized to the proper vtable.
Is This Answer Correct ? | 3 Yes | 0 No |
Answer / tiru
virtual table contains the address of the virtual functions
and pointers to the objects of the each of the derived
classes.
Is This Answer Correct ? | 6 Yes | 12 No |
Answer / achal
V-Table mechanism works on principle of dynamic binding
i.e. which version of the function has to be called is
decided by CPU at run time.
Use of virtual functions make the execution slower. Not all
the objects of the same class have different V-Table.
Is This Answer Correct ? | 2 Yes | 10 No |
What is double in c++?
What are iterators in c++?
How does c++ structure differ from c++ class?
Can we inherit constructor in c++?
How does a C++ structure differ from a C++ class?
structure contains int, char, float how it behaves for big endian and little endian?
Can we declare destructor as static? Explain?
Profiler in projects?
What are abstract data types in c++?
what are the iterator and generic algorithms.
What is #include iomanip?
what are the types of Member Functions?