<< Chapter < Page Chapter >> Page >
In the previous chapter, the declaration, initialization, and display of objects were presented. In this chapter, we continue our construction of classes by discussing how to write advanced constructors and destructors. Besides, this chapter also discusses one of C++ most powerful features, inheritance. Inheritance permits the reuse and extension of existing code in a way that ensures the new code does not adversely affect what has already been written.

Advanced constructors

In the last chapter, we already notice that constructors can provide a mechanism for initializing data members. However, constructors can do more than initializing data members. They can execute member functions and perform other type of initialization routines that a class may require when it first starts.

Parameterized constructors

Although constructor functions do not return values, they can accept parameters that a client can use to pass initialization values to the class.

Example: We can have a constructor function definition in the implementation file as follows:

Payroll::Payroll(double dFed, double dState){

dFedTax = dFed;

dStateTax = dState;

};

Once you create a parameterized constructor, you have to supply parameters when you instantiate a new object.

Example:

//Payroll.h

class Payroll{

public:

Payroll(double, double);

private:

double dFedTax;

double dStateTax;

}

//Payroll.cpp

#include “Payroll.h

#include<iostream.h>

Payroll::Payroll(double dFred, double dState){

dFedTax = dFed;

dStateTax = dState;

};

int main( ){

Payroll employee; //illegal

……

return 0;

}

Example

The program in this example finds the distance between two points using the pointer to class objects technique.

//points

#include<iostream.h>

#include<math.h>

class point {

private:

int x,y;

public:

point( int xnew, int ynew);

inline int getx(){

return(x);

}

inline int gety(){

return(y);

}

double finddist(point a, point b);

};

point::point(int xnew, ynew) //parameterized constructor

{

x = xnew;

y = ynew;

}

double point::finddist(point a, point b)

{

double temp;

temp = ((b.y – a.y)*(b.y – a.y) + (b.x – a.x)*(b.x – a.x));

return(sqrt(temp)):

}

int main()

{

double value;

point aobj(4,3), bobj(0, -1);

value = aobj.finddist(aobj, bobj);

cout<<“Distance between two points = “<<value<<endl;

return 0;

}

The output of the above program:

Distance between two points = 5.656855

Constructor functions can be overloaded , just like other functions. This means that you can instantiate different versions of a class, depending on the supplied parameters

Being able to overload a constructor function allows you to instantiate an object in multiple ways.

Example:

//Payroll.h

class Payroll{

public:

Payroll();

Payroll(double dFed);

Payroll(double dFed, double dState);

private:

double dFedTax;

double dStateTax;

}

//Payroll.cpp

#include “Payroll.h

#include<iostream.h>

Payroll::Payroll(){

dFedTax = 0.28;

dStateTax = 0.05;

};

Payroll::Payroll(double dFed){

dFedTax = dFed;

};

Payroll::Payroll(double dFred, double dState){

dFedTax = dFed;

dStateTax = dState;

};

int main( ){

Payroll employeeFL(0.28);

Payroll employeeMA(0.28, 0.0595);

return 0;

Questions & Answers

what's cornea?
Majak Reply
what are cell
Achol
Explain the following terms . (1) Abiotic factors in an ecosystem
Nomai Reply
Abiotic factors are non living components of ecosystem.These include physical and chemical elements like temperature,light,water,soil,air quality and oxygen etc
Qasim
what is biology
daniel Reply
what is diffusion
Emmanuel Reply
passive process of transport of low-molecular weight material according to its concentration gradient
AI-Robot
what is production?
Catherine
Pathogens and diseases
how did the oxygen help a human being
Achol Reply
how did the nutrition help the plants
Achol Reply
Biology is a branch of Natural science which deals/About living Organism.
Ahmedin Reply
what is phylogeny
Odigie Reply
evolutionary history and relationship of an organism or group of organisms
AI-Robot
ok
Deng
what is biology
Hajah Reply
cell is the smallest unit of the humanity biologically
Abraham
ok
Achol
what is biology
Victoria Reply
what is biology
Abraham
HOW CAN MAN ORGAN FUNCTION
Alfred Reply
the diagram of the digestive system
Assiatu Reply
allimentary cannel
Ogenrwot
How does twins formed
William Reply
They formed in two ways first when one sperm and one egg are splited by mitosis or two sperm and two eggs join together
Oluwatobi
what is respiration
Deborah
what is genetics
Josephine Reply
Genetics is the study of heredity
Misack
how does twins formed?
Misack
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Programming fundamentals in c++. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10788/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Programming fundamentals in c++' conversation and receive update notifications?

Ask