Can we have "Virtual Constructors"?

Answer Posted / bharat

People have already posted the answer in brief, however for
a newbie, this might not be enough... Hence posting this
thread...

If you are referring to constructors as in pure C++, then
there is no such concept as "virtual" constructors. A
constructor is responsible for creation of the particular
object, and hence cannot be "virtual".

It cannot be so, because a virtual function allows the
actual function call to be "deeper" in the hierarchy than
the type through which it is being called. for example, you
can have a base pointer through which a virtual call is made
to a derived object's function code (Derived class is
"deeper" than base class")

Since the constructor is responsible for creation of the
object itself, the function call being "deeper" than the
type being created does not make any sense. Hence a
constructor is always "local", and virtual constructor
concept does not exist.


However, in the domain of design patterns, there is such a
concept as Virtual Constructor or Factory Method. You can
find more information on this concept in "Thinking in C++
Volume 2" (A superb and Free ebook by Bruce Eckel) at the
location

http://www.planetpdf.com/developer/article.asp?ContentID=6634

Hope this is useful...

Is This Answer Correct ?    9 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

When we use Abstract Class and when we use Interface?where we will implement in real time?

1670


Which programming language should I learn first?

581


Describe Trees using C++ with an example.

610


Visual Basic 6 All the questions are compulsory. The first five questions shall be of 16 marks each and the last question shall be of 20 marks. Q1. A. Discuss the various types of variables. B. How to control the file? Q2. A. How the image application? B. Write short notes on trees structures work. Q3. A. How to load and unload child forms. B. When should we use recursive programming Q4. A. Write short notes on "The ole control's shortcut menu" B. How to test the AX stat class Q5. A. How to use advanced data-bound controls. B. Write notes on manipulating the recordset object Q6. A. What is script control? B. How to down load image properties. C. What is meant by building a recordset. PROJECT 2002 All the questions are compulsory. The first five questions shall be of 16 marks each and the last question shall be of 20 marks. Q1. A. How can we determine performance standards? B. Write note on chaining views. Q2. A. Discuss the working with task in Gantt chart view. B. Explain the creation project schedule. Q3. A. What is understand in resource tracking? B. Write short notes on Caturing Baseline. Q4. A. How to customize workgroup message? B. How to use hyperlink? Q5. A. Explain the installation of project server? B. Discuss the working with to-do lists. Q6. A. Explain the working of templates? B. What is visual basic? C. Write shortnotes on user forms. PROGRAMMING WITH C++ All the questions are compulsory. The first five questions shall be of 16 marks each and the last question shall be of 20 marks. Q1. A. What is unary operator? List out the different operators involved in the unary operator. B. What is an adjust field format flag? Q2. A. Distinguish between a # include and #define. B. Can a list of string be stored within a two dimensional array? Q3. A. Explain how a pointer to function can be declared in C++? B. List the merits and demerits of declaring a nested class in C++? Q4. A. What are the syntactic rules to be avoid ambiguity in multiple inheritence? B. Explain the operation of overloading of an assignment operator. Q5. A. Explain how the virtual base class is different from the conventional base classes of the opps. B. Explain how an exception handler is defined and invoked in a Program. Q6. A. What is a binary file? List the merits and demerits of the binary file usagein C++. B. Write short notes on Text Manipulation Routines. C. Write bites in Turbo c++ Header ("Include") Files. Java All the questions are compulsory. The first five questions shall be of 16 marks each and the last question shall be of 20 marks. Q1. A. Write note on "The class path Environment Variable". B. Which are different kinds of source code? Q2. A. How to create an interface? B. Why convert an applet to an application? Q3. A. How to use Media tracker Class. B. How to use string tokenizer class. Q4. A. Explain the overview of UDP messaging. B. Difference between SQL Exception class and SQL Warning class. Q5. A. How to create com object in Java? B. Write short notes on "The properties class" Q6. A. When object is created and destroyed? B. Explain the JDB in depth & command line. C. Write short notes on Web Sites. MULTIMEDIA All the questions are compulsory. The first five questions shall be of 16 marks each and the last question shall be of 20 marks. Q.1 Write a C language program to perform CCITT group 3 compression. If possible, scan some images and use your program to compress the images. What kind of compression did you achieve? Q2. How does a magneto-optical technology differ from WORM technology? Explain the differences in the manner in which you would use them for a multimedia system. Q3. What network considerations would you contemplate in designing an enterprise-wide multimedia system which supports fully distributed integrated messaging, sharing of corporate multimedia information databases, and custom business process applications? Q4. Explain the difference between the various types of multimedia object servers. How would you set up hierarchical storage for a large distributed organization? Q5. Explain the role of each type of server required in a multimedia system and the type of storage media that should be used for it. Q6. How do your decisions affect the design? Would different decisions on network technologies and object server technologies result in a different solution? OPERATING SYSTEM All the questions are compulsory. The first five questions shall be of 16 marks each and the last question shall be of 20 marks. Q1. What is an interrupt? How are multiple interrupts dealt with? Q2. Explain the difference between a MONOLITHIC KERNAL and a MICROKERNAL? Q3. List reasons why a Mode switch between threads may be cheaper than a Mode switch between processes. Q4. What is the difference among deadlock avoidance, detection and prevention? Q5. What items of information about a task might be useful in real time scheduling? Q6. Discuss some of the reasons for implementing process migration ? How is the process address space handled during process migration? WEB APPLICATIONS All the questions are compulsory. The first five questions shall be of 16 marks each and the last question shall be of 20 marks. Q1. Explain Java script in Web pages? Q2. Explain the advantages of Java script. Q3. Write the Properties of HTML object. Q4. How a JavaScript enabled browser handles the document object? Q5. What are cookies? Q6. Explain the process of controlling the Program flow in Pearl.

4709


Do vectors start at 0?

596






What is c++ programming language?

582


What is the difference between the functions rand(), random(), srand() and randomize()?

729


What ANSI C++ function clears the screen a) clrscr() b) clear() c) Its not defined by the ANSI C++ standard

593


Discuss the effects occur, after an exception thrown by a member function is unspecified by an exception specification?

644


What is enum c++?

618


What is class syntax c++?

595


Write a program which is required to process the time of a clock in hours and minutes, entered from the keyboard. With this program, there are two requirements for any data entered by a user: 1. The data must be of the correct type (in this case, two ints). 2. The data must be in the correct range: this means that, for the minutes, negative numbers and any number above 59 must be rejected; for the hours, negative numbers and any number above 23 must be rejected. Output error message for invalid data input. Output the time one and a half hour after the time input. i.e. Hour: 22 Min: 32 One and a half hour after 22:32 is 00:02

1514


What is fflush c++?

580


What are virtual constructors/destructors?

578


What are the effects after calling the delete this operator ?

563