You would like to verify the credentials of a user for your system. Listed next is a class named Security , which authenticates a user and password. (Note that this example is really not very secure. Typically passwords would be encrypted or stored in a database.)
class Security
{
public:
static int validate(string username, string password);
};
// This subroutine hard-codes valid users and is not
// considered a secure practice.
// It returns 0 if the credentials are invalid,
// 1 if valid user, and
// 2 if valid administrator
int Security::validate(string username, string password)
{
if ((username=="abbott") && (password=="monday")) return 1;
if ((username=="costello") && (password=="tuesday")) return 2;
return 0;
}
Break this class into two files, a file with the header Security.h and a file with the implementation Security.cpp.
Next, create two more classes that use the Security class by including the header file. The first class should be named Administrator and contain a function named Login that returns true if a given username and password have administrator clearance. The second class should be named User and contain a function named Login that returns true if a given username and password have either user or administrator clearance.
Both the User and Administrator classes should be split into separate files for the header and implementation.
Finally, write a main function that invokes the Login function for both the User and Administrator classes to test if they work properly. The main function should be in a separate file. Be sure to use the #ifndef directive to ensure that no header file is included more than once.
Sorry the answer is not available at the moment…
If you are able to find the answer, please make sure to post it here. So that your Juniors have smile on their lips and feel happy.
Spread the 'tradition of sharing'.