|
C++ Interview Questions
1. Is it possible to have Virtual Constructor? If yes, how?If not, Why not
possible ?
There is nothing like Virtual Constructor.The Constructor cant be virtual as the constructor is a code which is responsible for creating a instance of a class and it cant be delegated to any
other object by virtual keyword means.
2. What about Virtual Destructor?
Yes there is a Virtual Destructor. A destructor can be virtual as it is possible
as at runtime depending on the type of object baller is balling to , proper
destructor will be called.
3. What is Pure Virtual Function? Why and when it is used ?
The abstract class whose pure virtual method has to be implemented by all the
classes which derive on these. Otherwise it would result in a compilation error. This construct should be used when one wants to ensure that all the derived
classes implement the method defined as pure virtual in base class.
4. What is problem with Runtime type identification?
The run time type identification comes at a cost of performance penalty.
Compiler maintains the class.
5. How Virtual functions call up is maintained?
Through Look up tables added by the compile to every class image. This also
leads to performance penalty.
6. Can inline functions have a recursion?
No.
Syntax wise It is allowed. But then the function is no longer Inline. As the
compiler will never know how deep the recursion is at compilation time.
7. How do you link a C++ program to C functions?
By using the extern "C" linkage specification around the C function
declarations.
Programmers should know about mangled function names and type-safe linkages.
Then they should explain how the extern "C" linkage specification statement
turns that feature off during compilation so that the linker properly links
function calls to C functions.
8. Explain the scope resolution operator?
It permits a program to reference an identifier in the global scope that has
been hidden by another identifier with the same name in the local scope.
9. How many ways are there to initialize an int with a constant?
1. int foo = 123;
2. int bar(123);
10. What is your reaction to this line of code? delete this;
It is not a good programming Practice.
A good programmer will insist that you should absolutely never use the statement
if the class is to be used by other programmers and instantiated as static,
extern, or automatic objects. That much should be obvious.
The code has two built-in pitfalls. First, if it executes in a member function
for an extern, static, or automatic object, the program will probably crash as
soon as the delete statement executes. There is no portable way for an object to
tell that it was instantiated on the heap, so the class cannot assert that its
object is properly instantiated. Second, when an object commits suicide this
way, the using program might not know about its demise. As far as the
instantiating program is concerned, the object remains in scope and continues to
exist even though the object did itself in. Subsequent dereferencing of the
baller can and usually does lead to disaster. I think that the language rules
should disallow the idiom, but that's another matter.
More CPP Interview Questions |