Professional Documents
Culture Documents
Lecture 40
Class
Class is a user
defined data type.
Data
Hiding
Public
Interface
Yes you can use user
defined data type as a
member of the class
Class can contain
objects.
Example
class Date
{
private :
int month , day , year ;
public :
// member functions
};
Example
class Person
{
private :
char * name ;
char * address ;
Date dateOfBirth ; // member object
public :
// public member functions . . .
};
Person :: Person ( char * name , char * address , int day , int month , int year )
{
dateOfBirth.setDay ( dy ) ;
dateOfBirth.setMonth ( mn ) ;
dateOfBirth.setYear ( yr ) ;
// statement ( s ) ;
}
Initializer
List
Person :: Person ( char * name ,
char * address , int day, int month, int year )
: Date ( int month , int day , int year )
Constructor
Date :: Date ( int day , int month , int year )
{
cout << “Inside Date constructor ” ;
}
void display ( ) ;
void set ( int ) ;
~ Column ( )
{
cout << "Column destroyed" << endl ;
}
};
class Row
Example
{
private :
int size ;
Column col ;
public :
void set ( int ) ;
Row ( )
{
cout << "Inside Constructor for object Row" << endl ;
}
~ Row ( )
{
cout << "Row destroyed" << endl ;
}
void display ( ) ;
};
class Matrix
Example
{
private :
Row row ;
int size ;
public :
Matrix ( )
{
cout << "Matrix Created" << endl << endl ;
}
~ Matrix ( )
{
cout << "Matrix destroyed" << endl << endl ;
}
void display ( ) ;
};
Example
main( )
{
Matrix m ;
m.display ( ) ;
}
Output
Column Created
Inside Constructor for object Row
Matrix Created
….
Matrix Destroyed
Row Destroyed
Column Destroyed
Code
Reuse
const Date dateOfBirth ;
Structure inside
a structure
Class inside
a class
class Outer
Example
{
…….
class Inner1
{
private :
// Data members
//data functions
public :
// Data members
//data functions
};
//data members
//data functions
};
Class inside a class
Inner2
Inner1
Outer
Friend
Example
class Outer
{
public :
class Inner ;
friend class Inner ;
class Inner
{
}
{
// Statement ( s ) ; definition
}
Outer :: Inner :: Inner ( )
{
// definition
}
class Outer
Example
{
class Inner1
{
class Inner2
{
class Inner3
{
// Data members and functions
// and perhaps more inner classes
};
// Data members and functions
};
// Data members and functions
}; 48:
};