Results 1 to 4 of 4

Thread: overloading operators..Plesae help

  1. #1

    Thread Starter
    New Member
    Join Date
    Mar 2003
    Posts
    4

    overloading operators..Plesae help

    I have many errors when I compiled it. I think it's all from overloading operator. I have so many errors...this is one of them

    binary '+' : no operator defined which takes a right-hand operand of type 'class FuelPurchase' (or there is no acceptable conversion. Can anyone fix please this for me?

    Here's my coding

    Header file of vehicle
    PHP Code:
    #ifndef VEHICLE_H
    #define VEHICLE_H
    using namespace std;

    static const 
    int LEN 25;

    class 
    Vehicle

    private:
    char name[LEN]; 
    char model[LEN]; 
    int year;
    int totalcost;
    int totallitres

    public:
    Vehicle();
    Vehicle(const char *nchar *mint y);
    Vehicle(const Vehicle &r); //copy constructor
    const operator +(const Journeym) const;
    const 
    operator +(const FuelPurchasef) const;
    print(); 


    };
    #endif 
    source file of Vehicle
    PHP Code:
    #include <iostream.h>
    #include <iomanip.h>
    #include <string.h>
    #include "vehicle.h"

    using namespace std;

    Vehicle::Vehicle()
    {
    strcpy(name"");
    strcpy(model"");
    year 0;
    }

    Vehicle::Vehicle(char *nchar *mint y
    {
    strncpy(namenLEN);
    strncpy(modelmLEN);
    year y;
    }

    Vehicle::Vehicle(const Vehicle &r//copy constrcutor
    {
    name r.name;
    model r.model;
    year r.year;
    totalcost r.totalcost;
    totallitres r.totallitres;

    }

    Vehicle:perator +(const Journeym); //First additional operator
    {
    totaldistance totaldistance m.distance;



    Vehicle:perator +(const FuelPurchasef); //Second additonal operator

    totalcost totalcost f.cost
    totallitrs totallitres f.litres

    }


    Vehicle:rint() 
    int distance=0,services=0,cost=0,litres=0//all new vehicles begins with zero kilometers travelled and zero fuel
    double fueleconomy=0average=0//Set number of decimal places
    cout.setf(ios::fixed);
    cout.setf(ios::showpoint);
    cout.precision(1);

    cout <<"Vehicle: "<<endl//Display the manufacturer, model, year of manufacture 
    cout <<distance<<"km travelled requiring "<<litres<<" litres of fuel at a cost of$"<<cost<<endl;//total kilometers travleed, total fuel costs
    if (distance=0)

    cout <<"No travel has been recorded yet"<<endl;
    cout <<"No fuel has been purchased yet"<<endl;
    }

    else

    int fueleconomy = (litres/distance)*100//fuel economy(liters per 100 kilometers)
    cout << "This vehicle achieved a fuel economy of "<<fueleconomy<<"litres/100km"<<endl;
    int services distance/100;
    cout << "This vehicle should have undergone "<<services<<" service(s)"<<endl//total number of services
    average cost/litres;
    cout << "The average cost of fuel was $ "<<average<<endl;
    }
    return(
    0);


    this si header file for journey
    PHP Code:
    #ifndef JOURNEY_H
    #define JOURNEY_H

    class Journey
    {
    private:
    int distance;

    public:
    Journey();
    Journey(const int distance);

    };
    #endif 

    this is source file file journey
    PHP Code:
    #include <iostream>
    #include "journey.h"
    using namespace std;

    Journey::Journey()
    {
    distance 0;
    }

    Journey::Journey(int distance)
    {
    distance d;

    here's the header file for FuelPurchase
    PHP Code:
    #ifndef FUELPURCHASE_H
    #define FUELPURCHASE_H

    class FuelPurchase
    {
    private:
    int cost;
    int litres;

    public:
    FuelPurchase();
    FuelPurchase(const int cint l);

    };
    #endif 

    This is source file for FuelPurchase
    PHP Code:
    #include <iostream.h>
    #include "fuelpurchase.h"
    using namespace std;

    FuelPurchase::FuelPurchase()
    {
    cost 0;
    litres 0;

    }

    FuelPurchase::FuelPurchase(int cint l);
    {

    cost c;
    litres l;

    Here's the main code...
    PHP Code:

    #include <iostream>
    #include <string>

    using namespace std;

    #include "Vehicle.h"
    #include "FuelPurchase.h"
    #include "Journey.h"

    int main(int argccharargv[])
    {
    Vehicle a("BMW""A6"2003);
    Vehicle b("Toyota""A100"2003);
    Vehicle c("Mercedes-Benz""CL600"2003);

    cout << "Original Statistical:" << endl;
    cout << "=====================" << endl;

    a.print();
    b.print();
    c.print();

    FuelPurchase(5060);
    Journey(150);
    FuelPurchase(1215);

    FuelPurchase(5060);
    Journey(250);
    FuelPurchase(2222);

    FuelPurchase(5060);
    Journey(350);
    FuelPurchase(5040);

    cout << "Final Statistics:" << endl;
    cout << "=================" << endl;

    a.print();
    b.print();
    c.print();

    return(
    0);

    Last edited by Tozilla; Mar 29th, 2003 at 03:05 AM.

  2. #2
    yay gay PT Exorcist's Avatar
    Join Date
    Apr 2002
    Location
    . . . my reason of shame
    Posts
    2,729
    this is not ur answer but when doing operator overloading is overload the =+ so instead of :

    a = a + FuelPurchase(50, 60);

    u make

    a += FuelPurchase(50, 60);

    \m/\m/

  3. #3

    Thread Starter
    New Member
    Join Date
    Mar 2003
    Posts
    4
    Originally posted by PT Exorcist
    this is not ur answer but when doing operator overloading is overload the =+ so instead of :

    a = a + FuelPurchase(50, 60);

    u make

    a += FuelPurchase(50, 60);

    everything in the main source cannot be changed.....=(

  4. #4
    Frenzied Member Jop's Avatar
    Join Date
    Mar 2000
    Location
    Amsterdam, the Netherlands
    Posts
    1,986
    These operators should Return objects:

    Code:
    const operator +(const Journey& m) const;
    const operator +(const FuelPurchase& f) const;
    
    Vehicle:rint()  //Shouldn't this be print?
    Try to see where all of your errors occur and try to fixem
    Jop - validweb.nl

    Alcohol doesn't solve any problems, but then again, neither does milk.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width