Author Archives: ravitarvan

Panjab University(PUCHD) Syllabus

Category : News

Punjab University (PUCHD) Syllabus

Panjab University M.A 4th Sem Question Paper

Category : News

Panjab University M.A 3rd Sem Question Paper

Category : News

Panjab University M.A 3rd Sem Question Paper

Panjab University M.A 1st Sem Question Paper

Category : News

Panjab University M.A 1st Sem Question Paper

Panjab University M.A Previous Year Question Papers

Category : News

Panjab University M.A previous Year Question Paper 3rd sem panjab university question paper

Category : News

PU Panjab University Mcom 3rd sem sem Question paper

Buisness Performance Measurment

Human Resource Development

Human Resource Management industrial Relations

Tax Planing and Management

Accounting Finance International Accounting






strategic cost management




Bank Management

C ++ Language interview question and Answer

Category : News

Interview Questions

C++language Interview questions and Answers

In simple way Meaning of Analogy is “Similarity ” or compassion between one thing and other thing base d on some similarity 

250 + C++ Question and Answer

1.Is it possible to have Virtual Constructor? If yes, how? If not, Why not possible?

A: There is nothing like Virtual Constructor. The Constructor can’t be virtual as the constructor        is a code which is responsible for creating an instance of a class and it can’t be delegated to        any other object by virtual keyword means. 

2. What is constructor or ctor?

A: Constructor creates an object and initializes it. It also creates vtable for virtual functions. It is        different from other methods in a class. 

3. What about Virtual Destructor?

A: Yes there is a Virtual Destructor. A destructor can be virtual as it is possible as at runtime        depending on the type of object caller is calling to, proper destructor will be called. 

4.What is the difference between a copy constructor and an overloaded assignment operator?

A: A copy constructor constructs a new object by using the content of the argument object. An       overloaded assignment operator assigns the contents of an existing object to another existing       object of the same class. 

5.Can a constructor throws an exception? How to handle the error when the constructor fails?

A:The constructor never throws an error. 

6. What is default constructor?

A: Constructor with no arguments or all the arguments has default values. 

7.What is copy constructor?

A: Constructor which initializes the it’s object member variables ( by shallow copying) with another object of the same class. If you don’t implement one in your class then compiler implements one for you. for example:

 (a) Boo Obj1(10); // calling Boo constructor 

(b) Boo Obj2(Obj1); // calling boo copy constructor 

(c) Boo Obj2 = Obj1;// calling boo copy constructor 

8.When are copy constructors called?

A: Copy constructors are called in following cases:

 (a) when a function returns an object of that      class by value 

(b) when the object of that class is passed by     

  value as an argument to a function

 (c) when you construct an object based on another      

object of the same class

 (d) When compiler generates a temporary object 

9. Can a copy constructor accept an object of the same class as parameter, instead of reference of the object?

A: No. It is specified in the definition of the copy constructor itself. It should generate an error if a programmer specifies a copy constructor with a first argument that is an object and not a reference. 

10.What is conversion constructor?

A: constructor with a single argument makes that constructor as conversion ctor and it can be used for type conversion.

 for example:

 class Boo



 Boo( int i ); 


Boo BooObject = 10 ; // assigning int 10 Boo object 

11.What is conversion operator?

A:class can have a public method for specific data type conversions.

 for example: 

class Boo


double value;


Boo(int i ) 

operator double()


 return value;



Boo BooObject;

 double i = BooObject; // assigning object to variable i of type double. 

 now conversion operator gets called to assign the value. 


12.How can I handle a constructor that fails?

A: throw an exception. Constructors don’t have a return type, so it’s not possible to use return codes. The best way to signal constructor failure is therefore to throw an exception.

13.How can I handle a destructor that fails?

A: Write a message to a log-_le. But do not throw an exception. The C++ rule is that you must never throw an exception from a destructor that is being called during the “stack unwinding” process of another exception. For example, if someone says throw Foo(), the stack will be unwound so all the stack frames between the throw Foo() and the } catch (Foo e) { will get popped. This is called stack unwinding. During stack unwinding, all the local objects in all those stack frames are destructed. If one of those destructors throws an exception (say it throws a Bar object), the C++ runtime system is in a no-win situation: should it ignore the Bar and end up in the } catch (Foo e) { where it was originally headed? Should it ignore the Foo and look for a } catch (Bare) { handler? There is no good answer:either choice loses information. So the C++ language guarantees that it will call terminate() at this point, and terminate() kills the process. Bang you’re dead. 

14.What is Virtual Destructor?

A: Using virtual destructors, you can destroy objects without knowing their type – the correct destructor for the object is invoked using the virtual function mechanism. Note that destructors can also be declared as pure virtual functions for abstract classes. if someone will derive from your class, and if someone will say “new Derived”, where “Derived” is derived from your class, and if someone will say delete p, where the actual object’s type is “Derived” but the pointer p’s type is your class. 

15. Can a copy constructor accept an object of the same class as parameter, instead of reference of the object?

A: No. It is specified in the definition of the copy constructor itself. It should generate an error if a programmer specifies a copy constructor with a first argument that is an object and not a reference

16. What's the order that local objects are destructed?

A: In reverse order of construction: First constructed, last destructed. 

In the following example, b’s destructor will be executed first, then a’s destructor:  


void userCode() 

Fred a;

 Fred b;


17. What's the order that objects in an array are destructed?

A: In reverse order of construction: First constructed, last destructed.  


In the following example, the order for destructors will be a[9], a[8], …, a[1], a[0]:  


void userCode() 


 Fred a[10]; 


18. Can I overload the destructor for my class?


 You can have only one destructor for a class Fred. It’s always called Fred::~Fred(). It never takes any parameters, and it never returns anything.  


You can’t pass parameters to the destructor anyway, since you never explicitly call a destructor (well, almost never).  

19. Should I explicitly call a destructor on a local variable?

A: No!  

 The destructor will get called again at the close } of the block in which the local was created. This is a guarantee of the language; it happens automagically; there’s no way to stop it from happening. But you can get really bad results from calling a destructor on the same object a second time! Bang! You’re dead! 

20.What if I want a local to "die" before the close } of the scope in which it was created? Can I call a destructor on a local if I really want to?

A: No! [For context, please read the previous FAQ].  


Suppose the (desirable) side effect of destructing a local File object is to close the File. Now suppose you have an object f of a class File and you want File f to be closed before the end of the scope (i.e., the }) of the scope of object f:  

 void someCode() { File f; 

 …insert code that should execute when f is still open… 

 We want the side-effect of f’s destructor here! 

 …insert code that should execute after f is closed… }  There is a simple solution to this problem. But in the mean time, remember: Do not explicitly call the destructor! 

21. OK, OK already; I won't explicitly call the destructor of a local; but how do I handle the above situation?

A: Simply wrap the extent of the lifetime of the local in an artificial block {…}:  


void someCode() 



File f;

 …insert code that should execute when f is still open… 

} f’s destructor will automagically be called here! 


…insert code here that should execute after f is closed…} 

22. What if I can't wrap the local in an artificial block?

A: Most of the time, you can limit the lifetime of a local by wrapping the local in an artificial block ({…}). But if for some reason you can’t do that, add a member function that has a similar effect as the destructor. But do not call the destructor itself!  


For example, in the case of class File, you might add a close() method. Typically the destructor will simply call this close() method. Note that the close() method will need to mark the File object so a subsequent call won’t re-close an already-closed File. E.g., it might set the fileHandle_ data member to some nonsensical value such as -1, and it might check at the beginning to see if the fileHandle_ is already equal to -1:  


class File {


void close(); 




int fileHandle_; // fileHandle_ >= 0 if/only-if it’s open



 { close();



void File::close() 

if (fileHandle_ >= 0) { 

…insert code to call the OS to close the file…

 fileHandle_ = -1; 

 Note that the other File methods may also need to check if the fileHandle_ is -1 (i.e., check if the File is closed).  


Note also that any constructors that don’t actually open a file should set fileHandle_ to -1. 

23.But can I explicitly call a destructor if I've allocated my object with new?

A: Probably not. 

Unless you used placement new, you should simply delete the object rather than explicitly calling the destructor. For example, suppose you allocated the object via a typical new expression:  

 Fred* p = new Fred();  Then the destructor Fred::~Fred() will automagically get called when you delete it via:  

 delete p; // Automagically calls p->~Fred()  You should not explicitly call the destructor, since doing so won’t release the memory that was allocated for the Fred object itself. Remember: delete p does two things: it calls the destructor and it deallocates the memory. 

24. What is "placement new" and why would I use it?

A: There are many uses of placement new. The simplest use is to place an object at a particular location in memory. This is done by supplying the place as a pointer parameter to the new part of a new expression:  

#include // Must #include this to use “placement new” 

#include “Fred.h” // Declaration of class Fred 

void someCode()


char memory[sizeof(Fred)]; // Line #1 

void* place = memory; // Line #2 

 Fred* f = new(place) Fred(); // Line #3 (see “DANGER” below)

 // The pointers f and place will be equal 


Line #1 creates an array of sizeof(Fred) bytes of memory, which is big enough to hold a Fred object. Line #2 creates a pointer place that points to the first byte of this memory (experienced C programmers will note that this step was unnecessary; it’s there only to make the code more obvious). Line #3 essentially just calls the constructor Fred::Fred(). The this pointer in the Fred constructor will be equal to place. The returned pointer f will therefore be equal to place.  

ADVICE: Don’t use this “placement new” syntax unless you have to. Use it only when you really care that an object is placed at a particular location in memory. For example, when your hardware has a memory-mapped I/O timer device, and you want to place a Clock object at that memory location.  

DANGER: You are taking sole responsibility that the pointer you pass to the “placement new” operator points to a region of memory that is big enough and is properly aligned for the object type that you’re creating. Neither the compiler nor the run-time system make any attempt to check whether you did this right. If your Fred class needs to be aligned on a 4 byte boundary but you supplied a location that isn’t properly aligned, you can have a serious disaster on your hands (if you don’t know what “alignment” means, please don’t use the placement new syntax). You have been warned. 

You are also solely responsible for destructing the placed object. This is done by explicitly calling the destructor: 

void someCode()


char memory[sizeof(Fred)]; 

void* p = memory; 

Fred* f = new(p) Fred(); 


f->~Fred(); // Explicitly call the destructor for the placed object 


  This is about the only time you ever explicitly call a destructor.  


Note: there is a much cleaner but more sophisticated way of handling the destruction / deletion situation. 


25. When I write a destructor, do I need to explicitly call the destructors for my member objects?

A: No. You never need to explicitly call a destructor (except with placement new).  

A class’s destructor (whether or not you explicitly define one) automagically invokes the destructors for member objects. They are destroyed in the reverse order they appear within the declaration for the class. 

class Member

 { public:





class Fred 

{ public: 




Member x_; 

Member y_;

 Member z_; 



Fred::~Fred() { 

// Compiler automagically calls z_.~Member() 

// Compiler automagically calls y_.~Member() 

// Compiler automagically calls x_.~Member() 


26. When I write a derived class's destructor, do I need to explicitly call the destructor for my base class?

A: No. You never need to explicitly call a destructor (except with placement new).  


A derived class’s destructor (whether or not you explicitly define one) automagically invokes the destructors for base class subobjects. Base classes are destructed after member objects. In the event of multiple inheritance, direct base classes are destructed in the reverse order of their appearance in the inheritance list.  


class Member

 { public:

 ~Member(); … }; 


class Base 

{ public: virtual 

~Base(); // A virtual destructor




class Derived : public Base {



 … private:


 x_; }; 




// Compiler automagically calls x_.~Member()

 // Compiler automagically calls Base::~Base()


Note: Order dependencies with virtual inheritance are trickier. If you are relying on order dependencies in a virtual inheritance hierarchy, you’ll need a lot more information than is in this 


Interview Question For C language

Category : News

Interview Questions

C Language Interview questions and Answers

250 + C Language Question and Answer

1.what are static blocks and static initalizers in Java ?

Static blocks or static initializers are used to initalize static fields in java. we declare static blocks when we want to intialize static fields in our class. Static blocks gets executed exactly once when the class is loaded . Static blocks are executed even before the constructors are executed.

2) How to call one constructor from the other constructor ?

With in the same class if we want to call one constructor from other we use this() method. Based on the number of parameters we pass appropriate this() method is called.

Restrictions for using this method :

1) this must be the first statement in the constructor

2)we cannot use two this() methods in the constructor

3) What is method overriding in java ?

If we have methods with same signature (same name, same signature, same return type) in super class and subclass then we say subclass method is overridden by superclass.

When to use overriding in java If we want same method with different behaviour in superclass and subclass then we go for overriding. When we call overridden method with subclass reference subclass method is called hiding the superclass method.

4) What is super keyword in java ?

Variables and methods of super class can be overridden in subclass . In case of overriding , a subclass object call its own variables and methods. Subclass cannot access the variables and methods of superclass because the overridden variables or methods hides the methods and variables of super class. But still java provides a way to access super class members even if its members are overridden. Super is used to access superclass variables, methods, constructors.

Super can be used in two forms :

1) First form is for calling super class constructor.

2) Second one is to call super class variables,methods.

Super if present must be the first statement.

5) Difference between method overloading and method overriding in java ?

Method Overloading

  •  Method Overloading occurs with in the same class
  • Since it involves with only one class inheritance is not involved.                                        
  • In overloading return type need not be the same
  • Parameters must be different when we do overloading
  • Static polymorphism can be acheived using method overloading
  • In overloading one method can’t hide the another

Method Overriding​

  • Method Overriding occurs between two classes superclass and subclass
  • Since method overriding occurs between superclass and subclass inheritance is involved.
  • In overriding return type must be same.          
  • Parameters must be same.                              
  • Dynamic polymorphism can be acheived using method overriding
  • In overriding subclass method hides that of the superclass method.

6) Difference between abstract class and interface ?


  • Interface contains only abstract methods       
  • Access Specifiers for methods in interface must be public
  • Variables defined must be public , static final
  • Multiple Inheritance in java is implemented using interface
  • To implement an interface we use implements keyword

Abstract Class

  • Abstract class can contain abstract methods, concrete methods or both
  • Except private we can have any access specifier for methods in abstract class.
  • Except private variables can have any access specifiers
  • We cannot achieve multiple inheritance using abstract class
  • To implement an interface we use implement keyword

7) Why java is platform independent?

The most unique feature of java is platform independent. In any programming language soruce code is compiled in to executable code . This cannot be run across all platforms. When javac compiles a java program it generates an executable file called .class file.

class file contains byte codes. Byte codes are interpreted only by JVM’s . Since these JVM’s are made available across all platforms by Sun Microsystems, we can execute this byte code in any platform. Byte code generated in windows environment can also be executed in linux environment. This makes java platform independent.

8) What is method overloading in java ?

A class having two or more methods with same name but with different arguments then we say that those methods are overloaded. Static polymorphism is achieved in java using method overloading. Method overloading is used when we want the methods to perform similar tasks but with different inputs or values. When an overloaded method is invoked java first checks the method name, and the number of arguments ,type of arguments; based on this compiler executes this method. Compiler decides which method to call at compile time. By using overloading static polymorphism or static

binding can be achieved in java.

Note : Return type is not part of method signature. we may have methods with different return types but return type alone is not sufficient to call a method in java.

9) What is difference between c++ and Java ?


  •  Java is platform independent
  • There are no pointers in java
  • There is no operator overloading in java
  • There is garbage collection in java
  • Supports multithreading
  • There are no templates in java
  • There are no global variables in java

Abstract Class

  • C++ is platform dependent.
  • There are pointers in C++
  • C ++ has operator overloading.
  • There is no garbage collection
  • Does’nt support multithreading
  • There are templates in java
  • There are global variables in c++

10) What is bytecode in java ?

JIT compiler stands for Just in time compiler. JIT compiler compiles byte code in to executable code . JIT a part of JVM .JIT cannot convert complete java program in to executable code it converts as and when it is needed during execution.

11) What is bytecode in java ?

When a javac compiler compiler compiles a class it generates .class file. This .class file contains set of instructions called byte code. Byte code is a machine independent language and contains set of instructions which are to be executed only by JVM. JVM can understand this byte codes.

12) Difference between this() and super() in java ?

this() is used to access one constructor from another with in the same class while super() is used to access superclass constructor. Either this() or super() exists it must be the first statement in the constructor.

13) What is a class ?

Classes are fundamental or basic unit in Object Oriented Programming .A class is kind of blueprint or template for objects. Class defines variables, methods. A class tells what type of objects we are creating. For example take Department class tells us we can create department type objects. We can create any number of department objects.

All programming constructs in java reside in class. When JVM starts running it first looks for the class when we compile. Every Java application must have atleast one class and one main method. Class starts with class keyword. A class definition must be saved in class file that has same as class name. File name must end with .java extension.

public class FirstClass

{public static void main(String[] args)

{System.out.println(“My First class”);



If we see the above class when we compile JVM loads the FirstClass and generates a .class file(FirstClass.class). When we run the program we are running the class and then executes the main method.

14) What is an object ?

An Object is instance of class. A class defines type of object. Each object belongs to some class.Every object contains state and behavior. State is determined by value of attributes and behavior is called method. Objects are alos called as an instance.                                 

To instantiate the class we declare with the class type.

public classFirstClass {public static voidmain(String[] args)


FirstClass f=new FirstClass();

System.out.println(“My First class”);



To instantiate the FirstClass we use this statement

FirstClass f=new FirstClass();

f is used to refer FirstClass object              

15) What is an object ?

It contains the executable body that can be applied to the specific object of the class.

Method includes method name, parameters or arguments and return type and a body of executable code.

Syntax : type methodName(Argument List){


ex : public float add(int a, int b, int c) methods can have multiple arguments. Separate with commas when we have multiple arguments.

16) What is encapsulation ?

The process of wrapping or putting up of data in to a single unit class and keeps data safe from misuse is called encapsulation .

Through encapsulation we can hide and protect the data stored in java objects.Java supports encapsulation through access control. There are four access control modifiers in java public , private ,protected and default level.

For example take a car class , In car we have many parts which is not required for driver to know what all it consists inside. He is required to know only about how to start and stop the car. So we can expose what all are required and hide the rest by using encapsulation.

17) Why main() method is public, static and void in java ?

public : “public” is an access specifier which can be used outside the class. When main method is declared public it means it can be used outside class.

static : To call a method we require object. Sometimes it may be required to call a method without the help of object. Then we declare that method as static. JVM calls the main() method without creating object by declaring keyword static. 

void : void return type is used when a method does’nt return any value . main() method does’nt return any value, so main() is declared as void.

Signature : public static void main(String[] args) {

18) Explain about main() method in java ?

Main() method is starting point of execution for all java applications.

public static void main(String[] args) {}

String args[] are array of string objects we need to pass from command line arguments.

Every Java application must have atleast one main method.

19)What is constructor in java ?

A constructor is a special method used to initialize objects in java.

we use constructors to initialize all variables in the class when an object is created. As and when an object is created it is initialized automatically with the help of constructor in java. We have two types of constructors
Default Constructor
Parameterized Constructor
Signature : public classname()
Signature : public classname(parameters list)

20) What is difference between length and length() method in java ?

length() : In String class we have length() method which is used to return the number of characters in string.
Ex : String str = “Hello World”;
Str.length() will return 11 characters including space.
length : we have length instance variable in arrays which will return the number of values or objects in array.
For example :
String days[]={” Sun”,”Mon”,”wed”,”thu”,”fri”,”sat”};
Will return 6 since the number of values in days array is 6.

21) What is ASCII Code?

ASCII stands for American Standard code for Information Interchange. ASCII character range is 0 to 255. We can’t add more characters to the ASCII Character set. ASCII character set supports only English. That is the reason, if we see C language we can write c language only in English we can’t write in other languages because it uses ASCII code.

22) What is Unicode ?

Unicode is a character set developed by Unicode Consortium. To support all languages in the world Java supports Unicode values. Unicode characters were represented by 16 bits and its character range is 0-65,535.

Java uses ASCII code for all input elements except for Strings,identifiers, and comments. If we want to use Punjabi we can use Punjabi characters for identifiers.We can enter comments in Punjabi

23) What is Unicode ?

Character constant is enclosed in single quotes. String constants are enclosed in double quotes. Character constants are single digit or character. String Constants are collection of characters.

Ex :’2’, ‘A’

Ex : “Hello World”

24) What are constants and how to create constants in java?

Constants are fixed values whose values cannot be changed during the execution of program. We create constants in java using final keyword.

Ex : final int number =10;

final String str=”java-interview –questions”

25) Difference between ‘>>’ and ‘>>>’ operators in java?

>> is a right shift operator shifts all of the bits in a value to the right to a specified number of times.

int a =15;

a= a >> 3;

The above line of code moves 15 three characters right.

>>> is an unsigned shift operator used to shift right. The places which were vacated by shift are filled

with zeroes.