CPP Advance Methods

Advance Methods and functions

What is Method Overloading?
  • In C++ you can create several methods in a class with the same name. We says that these methods overload each other.
  • The class destructor method is the only one that cannot be overloaded.
  • C++ require that those methods must differ in their parameter list with a different type of parameter, a different number of parameters or both.
    Overload Method example:
    Source code Result
    #include <iostream>
    class Sylinder {
      // example of overloaded Constructors
      Sylinder(int radius,int height ) {
        this->radius = radius;
        this->height = height; }
      // Constructor with no parameter 
      // is called default Constructor 
      Sylinder() { radius=2; height=5; }
      ~Sylinder() {}
      // example of overloaded methods;  setRadius
      void setRadius(Sylinder & sylinder) {
        setRadius(sylinder.getRadius()); }
      void setRadius(int radius) {this->radius = radius;}
      int getRadius() const {return radius; }
      void setHeight(int height) {this->height = height;}
      int getHeight()  {return height;}
      // Using default values
      void setRadiusAndHeight(int radius,int height=40 ) {
        this->radius = radius;
        this->height = height; }
      int radius;
      int height;
    using namespace std;
    int main(){
      Sylinder * pSyl =  new Sylinder;
      cout << "pSyl radius: " << pSyl->getRadius()
        << " meter"  << endl;
      cout << "pSyl radius: " << pSyl->getRadius()
        << " meter"  << endl;
      Sylinder newSyl(4,20);
      cout << "pSyl radius: " << pSyl->getRadius()
        << " meter"  << endl;
      return 0;
    pSyl radius: 2 meter
    pSyl radius: 10 meter
    pSyl radius: 4 meter

  • Methods can as Function also have default values after the same rules as for functions. An example is shown in the Source code above for the setRadiusAndHeight method.
  • Constructors are invoked in two stages: the initialization stage and the body.

© 2010 by Finnesand Data. All rights reserved.
This site aims to provide FREE programming training and technics.
Finnesand Data as site owner gives no warranty for the correctness in the pages or source codes.
The risk of using this web-site pages or any program codes from this website is entirely at the individual user.