Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Constructors and Destructors - Advanced Programming - Lecture Slides, Slides of Computer Science

These are the Lecture Slides of Advanced Programming and its key important points are: Constructors and Destructors, Special Member Function, Multiple Constructors, Default Constructor, Copy Constructor, Simple Date Class, Member Functions, One Single Destructor, Explicit Or Implicit

Typology: Slides

2012/2013

Uploaded on 03/20/2013

dharmanand
dharmanand 🇮🇳

3.3

(3)

61 documents

1 / 15

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Classes
Constructors & Destructors
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

Download Constructors and Destructors - Advanced Programming - Lecture Slides and more Slides Computer Science in PDF only on Docsity!

Classes

Constructors & Destructors

Constructor

  • Special Member Function used for Initialization -- Same Name as the Class Name
  • Does NOT Return a Value
  • Cannot be virtual and static
  • Implicitly Invoked When Objects are Created or Copied
  • Can Have Arguments
  • Cannot be Explicitly Called
  • Multiple Constructors are Allowed
  • Default Constructor -- No Arguments -- Explicit or Implicit
  • Copy Constructor -- Explicit or Implicit

Constructor – Example 1

  • // date.cpp #include “date.h” //Default Constructor date::date() {day = 0; month = 0; year = 0; string_date = 0;} //First Constructor date::date(int ip_day, int ip_month, int ip_year){ day = ip_day; month = ip_month; year = ip_year; string_date = 0;} //Second Constructor date::date(char *ip_date){ day = 0; month = 0; year = 0; string_date = new char [size]; strcpy(string_date, ip_date);}

Constructor – Example 1

  • // client.cpp #include “date.h” main() { //"default_day" is an object of "date". //Default Constructor is invoked. date default_day; // "today" is an object of "date". //First Constructor is invoked. date today(02, 02, 2004); // "string_today" is an object of "date". //Second Constructor is invoked. date string_today(“February 2, 2004"); }

Constructor – Example 2 (cont)

  • // student.cpp #include “student.h” /* Member functions of the “Student" class */ Student::Student(){ name = new char[size]; id = new char[size]; email = new char[size];}

Student::Student(char *studentName, char *studentId, char *studentEmail){ name = new char[size]; strcpy(name, studentName); id = new char[size]; strcpy(id, studentId); email = new char[size]; strcpy(email, studentEmail); }

Constructor – Example 2 contd….

  • // client.cpp

#include “student.h”

/* “csStudent" is an instance of “Student" */

main(){

Student csStudent1;

Student csStudent2 ("Susie Creamchese“,

"screamch@iupui.edu");

Destructor – Example 1

  • // date.h

/* A Simple Date Class With a Destructor */ #define size 50 class date{ private: int day, month, year; char *string_date; public: date(char *ip_date); ~date(); //Destructor };

Destructor – Example 1

  • // date.cpp

#include “date.h”

//Constructor

date::date(char *ip_date){

day = 0; month = 0; year = 0;

string_date = new char [size];

strcpy(string_date, ip_date);}

//Destructor

date::~date() {delete[] (string_date);}

Destructor - Example 2

  • // student.h /* A Simple Class to Represent a Student */ #define size 50

class Student{ private: char *name; char *id; char *email; public: Student(); //Default Student(char *, char *, char *); ~Student(); };

Destructor – Example 2 (cont)

  • // student.cpp #include “student.h” /* Member functions of the “Student" class */ Student::Student(){ name = new char[size]; id = new char[size]; email = new char[size];} Student::Student(char *studentName, char *studentId, char *studentEmail){ name = new char[size]; strcpy(name, studentName); id = new char[size]; strcpy(id, studentId); email = new char[size]; strcpy(email, studentEmail);} Student::~Student(){ delete [] name; delete [] id; delete [] email; }