Newbie Constructor / Array question

Please support our C++ advertiser: Intel Parallel Studio Home
Reply

Join Date: Nov 2006
Posts: 1
Reputation: andyww14 is an unknown quantity at this point 
Solved Threads: 0
andyww14 andyww14 is offline Offline
Newbie Poster

Newbie Constructor / Array question

 
0
  #1
Nov 19th, 2006
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

}
Reply With Quote Quick reply to this message  
Join Date: Aug 2005
Posts: 15,596
Reputation: Ancient Dragon has a reputation beyond repute Ancient Dragon has a reputation beyond repute Ancient Dragon has a reputation beyond repute Ancient Dragon has a reputation beyond repute Ancient Dragon has a reputation beyond repute Ancient Dragon has a reputation beyond repute Ancient Dragon has a reputation beyond repute Ancient Dragon has a reputation beyond repute Ancient Dragon has a reputation beyond repute Ancient Dragon has a reputation beyond repute Ancient Dragon has a reputation beyond repute 
Solved Threads: 1488
Team Colleague
Featured Poster
Ancient Dragon's Avatar
Ancient Dragon Ancient Dragon is offline Offline
Still Learning

Re: Newbie Constructor / Array question

 
0
  #2
Nov 19th, 2006
a class can have more than one constructor. write another constructor that takes the parameter you want.
  1. class Class1
  2. {
  3. public:
  4. Class1(); // default constructor
  5. Class1(int array[10], int size);
  6. };
Don't PM me with questions -- you might get a nasty PM in response. If you have a question then post it in one of the forums.
Reply With Quote Quick reply to this message  
Join Date: Mar 2005
Posts: 22
Reputation: Mr Violent is an unknown quantity at this point 
Solved Threads: 0
Mr Violent Mr Violent is offline Offline
Newbie Poster

Re: Newbie Constructor / Array question

 
0
  #3
Nov 19th, 2006
You can create multiple constructors via method overloading.

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

  1. 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.

  1. 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.

  1. class myClass {
  2. private:
  3. int setThis;
  4.  
  5. public:
  6. myClass() { // first constructor calls the second constructor
  7. this(5);
  8. }
  9.  
  10. myClass(int n) { // second constructor, sets the class variable
  11. setThis = n;
  12. }
  13. }

if you compiled this class and called the following code:

  1. myClass ex = new myClass(5);
  2.  
  3. // OR
  4.  
  5. myClass ex2 = new myClass();

the local variable to myClass (named setThis) would be set to 5 in BOTH examples.
Last edited by Mr Violent; Nov 19th, 2006 at 6:45 pm.
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



Tag cloud for C++
About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC