This is my first post - Hello everybody, hopefully you can help get on straight and narrow with regards to c++ Anyway on to question:

What I need to do this is to utilize the
constructor of one class in a second class - thereby optimizing the
code by avoiding duplication.

Take this example:

Constructor of first class:

Class1::Class1( void )
{
        a = 0;

}

Instead of duplicating this I would like Class2 to use this same
constructor:

Class2::Class2( void )
{
        //I would like code here that would pass an array to the Class1
constructor and if the array was 5 in size then each position in the
array would be initialized with a=0

}

Recommended Answers

All 2 Replies

a class can have more than one constructor. write another constructor that takes the parameter you want.

class Class1
{
public:
       Class1(); // default constructor
       Class1(int array[10], int size);
};

You can create multiple constructors via method overloading.

Each function/method that you create has something called a method signature.

void myMethod(int j);

That is an example of a method signature, your compiler reads it as "void myMethod(int)". If you would like to overload this method and create another method with the same name but do something slightly different, you must change it's signature.

void myMethod(String j);

This creates a different signature "void myMethod(String)" and is therefore a different function. Depending on what you pass as a parameter into your method when you use it, depends on which method is used. Be careful of typecasting!

Constructors work in the same way, you can create multiple constructors, and using the "this" keyword you can either reference an object the method is a part of, or call another constructor of the same class.

class myClass {
private:
     int setThis;

public:
     myClass() { // first constructor calls the second constructor
          this(5);
     }

     myClass(int n) { // second constructor, sets the class variable
          setThis = n;
     }
}

if you compiled this class and called the following code:

myClass ex = new myClass(5);

// OR

myClass ex2 = new myClass();

the local variable to myClass (named setThis) would be set to 5 in BOTH examples.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.