DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C++ (http://www.daniweb.com/forums/forum8.html)
-   -   Inheritance, and code not running (http://www.daniweb.com/forums/thread160810.html)

namehere05 Dec 4th, 2008 11:10 pm
Inheritance, and code not running
 
Ah right! Im on my first steps on c++, What Im trying to do is
have this "basic node" class wich just take an id and from there
usign inheritance make "linked list node" and "binary tree node" classes my code so far looks like this

void main()
{
sLink* pChainLink; //sLink stays for single list link
sLink ChainLinkNo1 (pChainLink, 1);
sLink ChainLinkNo2 (ChainLinkNo1, 2);
sLink ChainLinkNo3 (ChainLinkNo2, 3);

sLink * tmp = ChainLinkNo3;
while(tmp != 0){
 cout <<  tmp->Id();
 tmp = ChainLinkNo3.Next();
}
 
}

and the other 2 headers

//sLink.h
class sLink : public Link
{
public:
sLink (sLink* pNext, int id): Link(id), _pNext (pNext)  {}
  sLink * Next () const { return _pNext; }
private:
  sLink * _pNext;
};

link.h //the basic node
class Link
{
public:
Link (int id): _id (id) {}
int Id () const { return _id; }
private:
int _id;
};

the compiler error says:

(red code position ) 'initializing' : cannot convert from 'Link *' to 'sLink *'

Some reason why's ... thanks

grumpier Dec 4th, 2008 11:36 pm
Re: Inheritance, and code not running
 
Your problem is actually the first four lines of the main() function. I've added comments to the code that are related to problems on each line.
void main()    // main should return int, not void
{
sLink* pChainLink; // uninitialised pointer
sLink ChainLinkNo1 (pChainLink, 1);  // undefined behaviour: accessing value of uninitialised pointer
sLink ChainLinkNo2 (ChainLinkNo1, 2);    // compiler error: ChainLinkNo1 not a pointer, sLink's constructor expects one
sLink ChainLinkNo3 (ChainLinkNo2, 3);  // compiler error: ChainLinkNo2 not a pointer, sLink's constructor expects one
The only reason the compiler is complaining about the line you have highlighted is that it is the only constructor that might be invoked by your code, but you've provided the wrong type of argument.

namehere05 Dec 5th, 2008 12:37 am
Re: Inheritance, and code not running
 
pretty good answer GOT IT ! thx


All times are GMT -4. The time now is 10:33 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC