Hey guys, I keep getting a link error in my code. It says this:
1>prob4.main.obj : error LNK2005: "private: static int HotDogStand::totalSales" (?totalSales@HotDogStand@@0HA) already defined in prob4.func.obj
Here's my code, maybe someone can help me out.
#pragma once
#include <iostream>
using namespace std ;
class HotDogStand
{
public:
HotDogStand ( int , int ) ;
HotDogStand ( ) ;
void justSold ( ) ;
int idSales ( ) ;
static int totSales ( ) ;
private:
static int totalSales ;
int id ;
int sales ;
} ;
int HotDogStand:: totalSales = 0 ;
-----------------------------------------------------------------------------------
#include "prob4.h"
int main ( )
{
HotDogStand jumbo ( 1 , 10 ) ;
HotDogStand franks ( 2 , 20 ) ;
HotDogStand porkies ( 3 , 5 ) ;
HotDogStand bunzRus ;
int totalSales ;
int jumboSales ;
int franksSales ;
int porkiesSales ;
int bunzRusSales ;
int x ;
for ( x = 0 ; x < 5 ; x++ )
{
jumbo.justSold ( ) ;
}
for ( x = 0 ; x < 10 ; x++ )
{
franks.justSold ( ) ;
}
for ( x = 0 ; x < 20 ; x++ )
{
porkies.justSold ( ) ;
}
for ( x = 0 ; x < 15 ; x++ )
{
bunzRus.justSold ( ) ;
}
jumboSales = jumbo.idSales ( ) ;
franksSales = franks.idSales ( ) ;
porkiesSales = porkies.idSales ( ) ;
bunzRusSales = bunzRus.idSales ( ) ;
totalSales = HotDogStand::totSales ( ) ;
cout << jumboSales << endl << franksSales << endl << porkiesSales << endl << bunzRusSales << endl ;
/cout << endl << totalSales << endl ;
return 0 ;
}
--------------------------------------------------------------------------------------
#include "prob4.h"
HotDogStand::HotDogStand ( int x , int y )
{
id = x ;
sales = y ;
}
HotDogStand::HotDogStand ( )
{
id = 0 ;
sales = 0 ;
}
void HotDogStand::justSold ( )
{
sales++ ;
totalSales++ ;
}
int HotDogStand::idSales ( )
{
return sales ;
}
int HotDogStand::totSales ( )
{
return totalSales ;
}