Making Derived Class Object Equal To Base Class Object

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

Join Date: Mar 2009
Posts: 10
Reputation: DallasEvertts is an unknown quantity at this point 
Solved Threads: 0
DallasEvertts's Avatar
DallasEvertts DallasEvertts is offline Offline
Newbie Poster

Making Derived Class Object Equal To Base Class Object

 
0
  #1
Mar 24th, 2009
I know that you can make a derived class object equal to a base class object, but I don't know how to do it the other way around. Here's the part of my code that I'm having difficulty with (Note: Animal is base class; Lion and Dog are derived classes).

// main.cpp
#include <iostream>

using std::cout;
using std::endl;

#include "animal.h"
#include "lion.h"
#include "dog.h"

int main()
{
    Animal a1( 0, 0 );
    Dog d1( 60, 120, "Fido" );
    Dog d2(0,0,"Toto");
    a1 = d1;
    cout << "Animal 1 now has the same height and weight as dog 1\n";
    a1.print();
    d2 = a1;
    cout << "Dog 2 now has the same height and weight as animal 1\n";
    d2.print();
    system("pause");
    return 0;
    
} // end main

The error message I get suggests that I need to overload the = operator to perform this, but for this assignment, I don't believe we are allowed to do that. How else can you do this?
Reply With Quote Quick reply to this message  
Join Date: Jan 2009
Posts: 46
Reputation: kbshibukumar is an unknown quantity at this point 
Solved Threads: 7
kbshibukumar kbshibukumar is offline Offline
Light Poster

Re: Making Derived Class Object Equal To Base Class Object

 
0
  #2
Mar 24th, 2009
I'm not sure if C++ permits that.
Better you can try
Animal* a1 = new Animal();
Animal* d1 = new Dog()

Then you can use dynamic_cast, if needed
Reply With Quote Quick reply to this message  
Reply

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



Other Threads in the C++ Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC