Friday, December 20, 2013

Constructor and Destructor

Previous                              Index                               Next 


Constructor

It is a member function having same name as it’s class and which is used to initialize the objects of that class type with a legel initial value. Constructor is automatically called when object is created.

Types of Constructor

Default Constructor-: A constructor that accepts no parameters is known as default constructor. If no constructor is defined then the compiler supplies a default constructor.
student :: student()
{
     rollno=0;
     marks=0.0;
}
Parameterized Constructor -: A constructor that receives arguments/parameters, is called parameterized constructor.

student :: student(int r)
{
     rollno=r;
}
Copy Constructor-: A constructor that initializes an object using values of another object passed to it as parameter, is called copy constructor. It creates the copy of the passed object.

student :: student(student &t)
{
     rollno = t.rollno;
}
There can be multiple constructors of the same class, provided they have different signatures.

Destructor

A destructor is a member function having sane name as that of its class preceded by ~(tilde) sign and which is used to destroy the objects that have been created by a constructor. It gets invoked when an object’s scope is over.

~student() { }
Example : In the following program constructors, destructor and other member functions are defined inside class definitions. Since we are using multiple constructor in class so this example also illustrates the concept of constructor overloading
#include<iostream.h>

class student //specify a class
{
  private :
    int rollno; //class data members
    float marks; 
  public:
    student() //default constructor
    {
       rollno=0;
       marks=0.0;
    }
    student(int r, int m) //parameterized constructor
    {
       rollno=r;
       marks=m;
    }
    student(student &t) //copy constructor
    {
       rollno=t.rollno;
       marks=t.marks;
    }
    void getdata() //member function to get data from user
    {
       cout<<"Enter Roll Number : ";
       cin>>rollno;
       cout<<"Enter Marks : ";
       cin>>marks;
    }
    void showdata() // member function to show data
    {
       cout<<"\nRoll number: "<<rollno<<"\nMarks: "<<marks;
    }
    ~student() //destructor
    {} 
};

int main()
{
    student st1; //defalut constructor invoked
    student st2(5,78); //parmeterized constructor invoked
    student st3(st2); //copy constructor invoked
    st1.showdata(); //display data members of object st1
    st2.showdata(); //display data members of object st2
    st3.showdata(); //display data members of object st3
    return 0;
}



Previous                              Index                               Next 

No comments:

Post a Comment