Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Programming Lecture 39. Copy Constructor.

Similar presentations


Presentation on theme: "Introduction to Programming Lecture 39. Copy Constructor."— Presentation transcript:

1 Introduction to Programming Lecture 39

2 Copy Constructor

3 Review Pointers Pointers References References Memory Allocation Memory Allocation

4 Pointers A pointer is a special type of variable that contain a memory address

5 Void Pointer Void Pointer Pointer to an Integer Pointer to an Integer Pointer to a Character Pointer to a Character Pointer to a Float Pointer to a Float Pointer to Objects Pointer to Objects

6 References

7 &

8 const

9 Dynamic Memory Allocation

10 Native Operator new new delete delete

11 int *p ; p = new int ; delete p ; Dynamic Memory Allocation

12 int *p ; p = new int [ 10 ] ; delete [ ] p ; Dynamic Memory Allocation

13 class Matrix { private : int * m ; int row, col ; public : Matrix ( int rows, int cols ) Matrix ( int rows, int cols ) { m = new int [ rows * cols ] ; } } ; Example

14 delete [ ] m ;

15 Assignment

16 int i = 0 ; //Initialization int i ; i = 0 ; //Assignment

17 Matrix m1, m2 ; …… m2 = m1 ; m2 = m1 ; //Assignment Statement

18 Member to Member Assignment

19 m2 = m1

20 0xefffdad0 mx Pointing to the same region in memory int *m of m1 0xefffdad0 int *m of m2

21 0xefffdad0 mx Pointing to the same region in memory int *m of m1 0xefffdad0 int *m of m2

22 Copy Constructor

23 Call by value

24 Deep Copy Shallow Copy

25 Matrix ( Matrix & ) ;

26 Example class String { char * c ; char * c ; public : public : void copy ( char * s ) ; String ( char * data ) ; void print ( ) ; // etc. // etc. } ;

27 Example String s1 ( “test1” ) ; String s2 = s1 ; s1.copy ( “this is a test” ) ; s2.print ( ) ;

28 int i ; i = 10 ; i = i ;

29 Matrix m2 ( m1 ) ; Matrix m2 = m1 ;

30 Rules For dynamic memory allocation 1. Define copy constructor 2. Write assignment operator 3. Provide destructor

31 What have we covered today Review of pointers Review of pointers –Dynamic memory allocation new new Delete Delete For memory allocation in classes we must provide For memory allocation in classes we must provide –Constructor –Copy constructor –Assignment operator –destructor


Download ppt "Introduction to Programming Lecture 39. Copy Constructor."

Similar presentations


Ads by Google