Commonly Asked C++ Interview Questions - Set 2
Commonly Asked C++ Interview Questions - Set 2
Java has automatic garbage collection whereas C++ has destructors , which are automatically invoked when the object is destroyed.
Java does not support pointers, templates, unions, operator overloading, structures etc.
C++ has no in built support for threads,whereas in Java there is a Thread class that you inherit to create a new thread
No goto in Java
C++ support method overloading and operator overloading but Java only has method overloading.
C++ support multiple inheritance using classes only but Java doesn’t support multiple inheritance using class. We need interfaces to
implement multiple inheritance in Java.
Java is interpreted and hence platform independent whereas C++ isn’t. At compilation time, Java Source code converts into JVM byte
code. The interpreter execute this bytecode at run time and gives output. C++ run and compile using compiler which converts source code
into machine level language.
Access speci ers are used to de ne how the members (functions and variables) can be accessed outside the class.
Private: Members declared as private are accessible only within the same class and they cannot be accessed outside the class they are
declared. Child classes are also not allowed to access private members of parent.
Public: Members declared as public are accessible from anywhere.
Protected: Only the class and its child classes can access protected members.
Do you know What happens when more restrictive access is given to a derived class method in C++?
Class: Class is a blueprint of data and functions or methods. Class does not take any space.
Object: Objects are basic run-time entities in an object oriented system, objects are instances of a class these are de ned user de ned
data types.
Encapsulation and Data abstraction: Wrapping up(combining) of data and functions into a single unit is known as encapsulation. The data
is not accessible to the outside world and only those functions which are wrapping in the class can access it. This insulation of the data
from direct access by the program is called data hiding or information hiding.
Data abstraction – providing only needed information to the outside world and hiding implementation details. For example, consider a
class Complex with public functions as getReal() and getImag(). We may implement the class as an array of size 2 or as two variables.
The advantage of abstractions is, we can change implementation at any point, users of Complex class wont’t be affected as our method
interface remains same. Had our implementation be public, we would not have been able to change it.
Inheritance: Inheritance is the process by which objects of one class acquire the properties of objects of another class. It supports the
concept of hierarchical classi cation. Inheritance provides reusability. This means that we can add additional features to an existing class
without modifying it.
Polymorphism: Polymorphism means ability to take more than one form. An operation may exhibit different behaviors in different
instances. The behavior depends upon the types of data used in the operation.
Dynamic Binding: In dynamic binding, the code to be executed in response to function call is decided at runtime. C++ has virtual functions
to support this.
Message Passing: Objects communicate with one another by sending and receiving information to each other. A message for an object is
a request for execution of a procedure and therefore will invoke a function in the receiving object that generates the desired results.
Message passing involves specifying the name of the object, the name of the function and the information to be sent.
Q. Structure vs class in C++
Q. Inline Functions
C++ provides an inline functions to reduce the function call overhead. Inline function is a function that is expanded in line when it is called.
When the inline function is called whole code of the inline function gets inserted or substituted at the point of inline function call. This
substitution is performed by the C++ compiler at compile time. Inline function may increase e ciency if it is small.
// function code
Remember, inlining is only a request to the compiler, not a command. Compiler can ignore the request for inlining.
A friend class can access private and protected members of other class in which it is declared as friend. It is sometimes useful to allow a
particular class to access private members of other class. For example a LinkedList class may be allowed to access private members of Node.
Friend Function Like friend class, a friend function can be given a special grant to access private and protected members. A friend function can
be:
b) A global function
1) Friends should be used only for a limited purpose. too many functions or external classes are declared as friends of a class with protected or
private data, it lessens the value of encapsulation of separate classes in object-oriented programming.
2) Friendship is not mutual. If class A is a friend of B, then B doesn’t become a friend of A automatically.
Note: Overloading of functions with different return types are not allowed.
Operating overloading allows us to make operators work for user-de ned classes. For example, we can overload an operator ‘+’ in a class like
String so that we can concatenate two strings by just using +.
Other example classes where arithmetic operators may be overloaded are Complex Number, Fractional Number, Big Integer, etc.
Q. Copy Constructor
A copy constructor is a member function which initializes an object using another object of the same class. A copy constructor has the
following general function prototype: ClassName (const ClassName &old_obj);
// Copy constructor
Q.What Is Inheritance?
Different kinds of objects often have a certain amount in common with each other. Yet each also de nes additional features that make them
different. Object-oriented programming allows classes to inherit commonly used state and behavior from other classes
Static is a keyword in C++ used to give special characteristics to an element. Static elements are allocated storage only once in a program
lifetime in static storage area. And they have a scope till the program lifetime. Static Keyword can be used with following,