- Course Home
- Online Resources
Practice Exercise #8
The following source file, named ex8.cc, uses a parameterized type, Range, that implements an integer type restricted to some consecutive interval (1 to 1000 in this example): When run, the following output is produced:
Your job is to implement Range so that the code above compiles cleanly and produces the output shown when run.bash$ g++ -Wall -std=gnu++0x -g -o ex8 ex8.cc bash$ ./ex8 x = 911 y = 44 z = 120 x+y+z = NaN bash$
- If a value falls outside the interval of the Range type, the result is Nan (not a number). Any operation involving a NaN value produces a Nan result.
- If you have a constructor that takes a single integer argument, then C++ will automatically promote integer literals to Range objects if needed. (For example, (x-z) * 4 multiplies a Range by an int. The solution code does not define a method for that, but does define Range times Range. C++ creates a Range object from the 4 literal, then invokes the Range multiplication operator.)
- The result of the to_string method is a C++ string object.
- Put all your code in a single file, Range.h. (That is, put your code directly in the .h file, not in a separate .cc file.)
- We will grade your code by linking it with a grading mainline and examining the results it produces. That mainline may use arbitrary arithmetic formulas, but restricted to the four operators shown in the example mainline.
Computer Science & Engineering University of Washington Box 352350 Seattle, WA 98195-2350 (206) 543-1695 voice, (206) 543-2969 FAX