Constructor & Destructor
Upcoming SlideShare
Loading in...5
×
 

Constructor & Destructor

on

  • 7,406 views

I am PGT(Comp. Sc) in KV(AFS) Utarlai

I am PGT(Comp. Sc) in KV(AFS) Utarlai
publishing Constructor and Destructor for
Class XII

Statistics

Views

Total Views
7,406
Views on SlideShare
7,403
Embed Views
3

Actions

Likes
1
Downloads
344
Comments
0

2 Embeds 3

http://www.slideshare.net 2
http://www.linkedin.com 1

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Constructor & Destructor Constructor & Destructor Presentation Transcript

  • Constructor & Destructor
  • Constructors
    • Def- A constructor is a special member function that is a member of a class and has same name as that class.
    • Use- It is used to initialize the object of the class type with a legal initial value.
  • Special Characteristics of Constructors
    • These are called automatically when the objects are created.
    • All the objects of the class having a constructor are initialized before some use.
    • These should be declared in the public section for availability to all the functions.
    • Constructor has no return type even void.
    • They can not be inherited.
    • These cannot be static.
    • Default and copy constructor are generated by the compiler whenever required. Generated constructors are public.
    • Constructors can have default argument as other C++ functions.
  • Declaration and Definition
    • It can be defined either inside the class definition or outside the class definition
    • class X { int i ;
    • public:
    • int j,k ;
    • X() { i = j = k =0;}
    • };
    • class X { int i ;
    • public:
    • int j,k ;
    • X() { i = j = k =0;}
    • };
    • X::X()
    • {
    • I = j = k =0;
    • }
  • Note
    • Generally a constructor should be defined under the public section of a class, so that its object can be created in any function
    • class X { int i ;
    • X() { i = j = k =0;}
    • public:
    • int j,k ;
    • void check(void); // member function
    • };
    • void X :: check (void)
    • {
    • X obj1; //valid
    • }
    • int main()
    • {
    • X obj2; //invalid
    • }
  • Default constructor
    • A constructor that accept no parameter is called the default constructor.
  • Copy Constructor
    • A copy Constructor is used to initialize an object from another object.
    • If you have not defined a copy constructor, the complier automatically creates it and it is public
    • Copy constructor always takes argument as a reference object.
    • Consider the following class definition
  • class sample { int i, j; public: sample ( int a, int b) { i = a; j = b; } sample ( sample & s) { i = s.i ; j = s.j ; } void print(void) { cout<<i <<“ “<<j <<“ ”; } Above constructors may be used as follows sample s1 (10,12); //1 st const. called sample s2 (s1) // copy const. called sample s3 = s1; copy const. called
  • Home work
    • In a class does not define a constructor, what will be the initial value of its object.
    • What are the significance of default constructor.
    • How many situations when a copy constructor is automatically called.
  • Default Arguments
    • Just like any other function a constructor can also have default arguments
    • This constructor is equivalent to default constructor. Because its also allows us to create objects without any value provided.
    • For example
    • class A
    • {
    • int i,j;
    • public:
    • X(int x=10,int y=20);
    • };
    • A::X(int x,int y)
    • {
    • i=x;
    • j = y;
    • }
    int main() { A obj1; A obj2(250); A obj3(2,4); getch(); return 0; } i=10 j=20 i=250 j=20 i=2 j=4 obj1 obj2 obj3
  • Order of Constructor Invocation
    • The objects are constructed in the order they are defined. Consider the following statement
    • Sample s1,s2,s3; // the order of construction is s1,s2,s3.
    • But when a class containing objects of another class as its members. In such a case, the constructor for member objects are invoked first and then only, the constructor for containing class is invoked.
    • For example
    • class A
    • {
    • public:
    • A()
    • {
    • cout<<“Constructing A”
    • <<endl;
    • }};
    • class B
    • {
    • public:
    • B()
    • {
    • cout<<“Constructing B”
    • <<endl;
    • }};
    class C { private: A objA; B objB; public: C() { cout<<“Constructing C” <<endl; }}; int main() { clrscr(); C objC; getch(); }