I am trying to break the following code up into separate header and implementation files in C++:
class randomInteger {
public:
unsigned int operator () (unsigned int);
} randomizer;
unsigned int randomInteger::operator () (unsigned int max)
{
// rand return random integer
// convert to unsigned to make positive
// take remainder to put in range
unsigned int rval = rand();
return rval % max;
}
unsigned int randBetween(int low, int high) {
return low + randomizer(high - low);
}
Here is what I have split apart: RandomInteger.h
#ifndef __EventSimulation__RandomInteger__
#define __EventSimulation__RandomInteger__
#include <iostream>
class RandomInteger {
public:
// MEMBERS
unsigned int operator () (unsigned int);
unsigned int randBetween(int low, int high);
} randomizer;
#endif
RandomInteger.cpp
#include "RandomInteger.h"
unsigned int RandomInteger::operator () (unsigned int max) {
// rand return random integer
// convert to unsigned to make positive
// take remainder to put in range
unsigned int rval = rand();
return rval % max;
}
unsigned int RandomInteger::randBetween(int low, int high) {
return low + RandomInteger(high - low);
}
When I use the class in my main method for testing and try running the program I get an error " linker command failed with exit code 1 (use -v to see invocation) " using Xcode.
Here is my simple main method:
int main(int argc, const char * argv[])
{
// Test Randomized
// Create a random number between 2 and 4
int randomBeer = randomizer.randBetween(2, 4);
// Switch to print beer
cout << "BeerType: " << randomBeer << endl;
}
Here is a screen shot of the error: