How to construct virtual constructor
Answer Posted / mmszubeir
C++ doesn’t give any direct support to declare a virtual
constructor as such. But we can have a virtual constructor
by indirectly providing the mechanism.
As like ordinary virtual functions, a virtual constructor
can exhibit different behaviors depending upon the request.
That is, a virtual constructor can construct different
types of objects on different requests. This implies the
class hierarchy should be polymorphical.
This technique resembles two stage construction technique.
To avoid breaking at the constructor of an object, we keep
the heavy initialization code in a separate initializer
function so that we get the minimum guarantee that the
constructor won’t fail.
In this case, we first invoke the constructor and then
invoke the initializer function. The advantage of this
method is that we will have a better control of the
construction.
For example,
CBrush blueBrush; // Just an object. Must be initialized!
blueBrush.CreateSolidBrush(RGB(0,0,255)); // Blue brush.
Since I am running short of time, I hang on with this for
the time being. I will add more details about the virtual
constructor theory soon.
| Is This Answer Correct ? | 10 Yes | 5 No |
Post New Answer View All Answers
Explain about Garbage Collector?
What are the important differences between c++ and java?
What is the benefit of learning c++?
Explain how an exception handler is defined and invoked in a Program.
What is a constructor in c++ with example?
What is the use of c++ programming language in real life?
How do you declare A pointer to function which receives an int pointer and returns a float pointer
What are advantages of using friend classes?
What is capacity in vector in c++?
Can we overload operator in c++?
Differentiate between late binding and early binding. What are the advantages of early binding?
What is expression parser in c++
Can constructor be private in c++?
What is atoi?
What does #define mean in c++?