471,067 Members | 1,557 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,067 software developers and data experts.

inheritance

I am trying to define an inherited class CheckMyArray
which inherits from InitMyArray

however it keeps coming up with

CheckMyArray.cpp: In method `CheckMyArray::CheckMyArray(int)':
CheckMyArray.cpp:6: no matching function for call to `InitMyArray::InitMyArray ()'
InitMyArray.h:15: candidates are: InitMyArray::InitMyArray(int)
InitMyArray.h:16: InitMyArray::InitMyArray(int, int)
InitMyArray.h:25: InitMyArray::InitMyArray(const InitMyArray &)
make: *** [CheckMyArray] Error 1

My code for Init and Check is

//child class of InitMyArray

#ifndef CHECKMYARRAY_H
#define CHECKMYARRAY_H

#include "InitMyArray.h"

class CheckMyArray : public InitMyArray
{
private:

int cVal;

public:

CheckMyArray(int);

void put(int, int);

};

#endif
#ifndef INITMYARRAY_H
#define INITMYARRAY_H

#include "MyArray.h"

class InitMyArray
{
private:

int arrSize;
int arrVal;

public:
/*constructors*/
InitMyArray(int);
InitMyArray(int, int);

/*Destructors*/
~InitMyArray();

/*member functions*/
int get(int);

int getSize();
};

#endif

please help, Im cant seem to figure this out.
Jul 19 '05 #1
1 3897

"Brett Irving" <ba*****@hotmail.com> wrote in message
news:4f*************************@posting.google.co m...
I am trying to define an inherited class CheckMyArray
which inherits from InitMyArray

however it keeps coming up with

CheckMyArray.cpp: In method `CheckMyArray::CheckMyArray(int)':
CheckMyArray.cpp:6: no matching function for call to `InitMyArray::InitMyArray ()' InitMyArray.h:15: candidates are: InitMyArray::InitMyArray(int)
InitMyArray.h:16: InitMyArray::InitMyArray(int, int)
InitMyArray.h:25: InitMyArray::InitMyArray(const InitMyArray &) make: *** [CheckMyArray] Error 1

My code for Init and Check is

//child class of InitMyArray

#ifndef CHECKMYARRAY_H
#define CHECKMYARRAY_H

#include "InitMyArray.h"

class CheckMyArray : public InitMyArray
{
private:

int cVal;

public:

CheckMyArray(int);

void put(int, int);

};

#endif
#ifndef INITMYARRAY_H
#define INITMYARRAY_H

#include "MyArray.h"

class InitMyArray
{
private:

int arrSize;
int arrVal;

public:
/*constructors*/
InitMyArray(int);
InitMyArray(int, int);

/*Destructors*/
~InitMyArray();

/*member functions*/
int get(int);

int getSize();
};

#endif

please help, Im cant seem to figure this out.


When you construct a CheckMyArray an InitMyArray has to be constucted first.
That is because CheckMyArray inherits from InitMyArray. To construct an
InitMyArray one of its constructors must be invoked. By default what happens
is that the default constructor gets invoked, but InitMyArray doesn't have
one, that is what the error message says.

Its hard to be certain from the code you've posted but probably you want to
do something like this

ChemMyArray::CheckMyArray(int size) : InitMyArray(size)
{
...
}

Now you are invoking the InitMyArray(int) constructor using the int
parameter for the CheckMyArray constructor.

john
Jul 19 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

2 posts views Thread by Graham Banks | last post: by
4 posts views Thread by JKop | last post: by
5 posts views Thread by Morgan Cheng | last post: by
10 posts views Thread by davidrubin | last post: by
14 posts views Thread by Steve Jorgensen | last post: by
22 posts views Thread by Matthew Louden | last post: by
45 posts views Thread by Ben Blank | last post: by
6 posts views Thread by Bart Simpson | last post: by
reply views Thread by leo001 | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.