13.5 Focus on Software Engineering: Separating Class Specification from Implementation: 10877

Question

Write the implementation (.cpp file) of the  Counter class of the previous exercise. The full specification of the class is:
A data member  counter of type  int .
An data member named  limit of type  int .
A static  int data member named  nCounters which is initialized to  0 .
A constructor that takes two  int arguments and assigns the first one to  counter and the second one to  limit . It also adds one to the static variable  nCounters
A function called  increment that accepts no parameters and returns no value. If the data member  counter is less than  limit ,  increment just adds one to the instance variable  counter .
A function called  decrement that accepts no parameters and returns no value. If  counter is greater than zero,  decrement subtracts one from the  counter .
A function called  getValue that accepts no parameters. It returns the value of the instance variable  counter .
A static function named  getNCounters that accepts no parameters and return an  int .  getNCounters returns the value of the static variable  nCounters .

Solution
int Counter::nCounters = 0;

Counter::Counter(int theCounter, int theLimit)
{
        nCounters++;
        counter = theCounter;
        limit=theLimit;
}

void Counter::increment()
{
    if (counter<limit)
        counter++;
}

void Counter::decrement()
{
    if (counter>0)
        counter--;
}

int Counter::getValue()
{
    return counter;
}


int Counter::getNCounters()
{
    return nCounters;
}

No comments:

Post a Comment