You must design and implement classes whose use is similar to the getopt function from a user's perspective, but for a user versed in C++ rather than C. This means that you should use STL vectors instead of C-style arrays, strings instead of C-style strings (0 terminated character arrays), etc. You may implement several classes as part of the implementation of the main class whose interface the user sees as providing equivalent (or better) functionality than getopt. Additionally, you must also allow a user of your library to specify environment variables from which a program can get additional default values. Access to these values should be similar to those for values entered on the command-line.
You must supply online HTML documentation (like man pages) that describes how to use your classes and shows some example code.
You must supply static or shared/dynamic libraries for your getopt
classes so that users can include your header file, link the library, and
use your classes. You must supply a Makefile that will compile either
libgetopt.a
or libgetopt.so (static or shared libraries, respectively). Information
on creating libraries is here.