Programming Forums
User Name Password Register
 

RSS Feed
FORUM INDEX | TODAY'S POSTS | UNANSWERED THREADS | ADVANCED SEARCH

 
 
Thread Tools Display Modes
Prev Previous Post in Thread   Next Post in Thread Next
Old Feb 27th, 2006, 2:13 PM   #1
Eric the Red
Hobbyist Programmer
 
Eric the Red's Avatar
 
Join Date: Feb 2006
Posts: 214
Rep Power: 0 Eric the Red is an unknown quantity at this point
A class with operator overloading

I'm new to c++. I recently read a book on it. After reading the book i just wanted to get some practical experience. Now i'm trying to get "operator overloading" to work. I have a Car class and all i want to do is increment the Honda's speed by 1, (from the Car class). Doing "++Honda" (Honda is the object). However, Instead of increamenting by 1 it increments by approx ONE HUNDRED MILLION. What am i doing wrong??

#include <iostream>
#include <stdlib.h>

class Car
{
public:
    Car(); 
    ~Car();
    int GetSpeed() {return *itsSpeed;}
    void SetSpeed (int speed) { *itsSpeed = speed;}
    void Speeding();
    void Speed() { *itsSpeed = *itsSpeed + 1;}
    const Car& operator++ ();
private:
    int * itsSpeed;
    int * itsFuel;
};
    
Car::Car()
{
    itsSpeed = new int(10);
    itsFuel = new int(20);
}

Car::~Car()
{
    delete itsSpeed;
    delete itsFuel;
}

const Car& Car::operator++()
{
    * ++itsSpeed;
}

void Car::Speeding()
{
    if (* itsSpeed > (30))
    {
        std::cout << "You are over the speed limit, please slow down. Your going " << *itsSpeed << " KM/H \n";
    }
    else 
    {
        std::cout << "Your under the speed limit. Your at " << *itsSpeed << " KM/H at the moment.\n"; 
    }
}
int main()
{
    //int CarSpeed;
  
    Car * Honda = new Car;
    Honda->Speeding();    
    Honda->SetSpeed(45);
    Honda->Speeding();
    Honda->Speed();
    Honda->Speeding();
    ++Honda;
    Honda->Speeding();
    ++Honda;
    Honda->Speeding();
           
    delete Honda;
    system("Pause");
    return 0;
}
Eric the Red is offline   Reply With Quote
 

Bookmarks

« Previous Thread in Forum | Next Thread in Forum »

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump




DaniWeb IT Discussion Community
All times are GMT -5. The time now is 3:15 AM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC