Notes on inheritance.

(However, a derived class method cannot access the protected member of an object of the base class type)

derived( ) : base( ) {}

derived(...){...}

then the compiler will call the default (zero-argument) constructor prior to executing this constructor. To prevent this, you must explicitly call the appropriate base constructor in the initializer list of the derived class constructor:

derived(... ) : base(...) {...}

virtual returnType fnName(..) {...}

const compStudent & operator=(const compStudent & rhs);

if not defined in class compStudent, is implemented by a call to operator= for the base class (student), followed by the copying of the string "comp"

[Specifies (in the base class) the methods that all derived classes must implement, but leaves it to the derived classes to determine how.]

virtual returnType fnName (argList) = 0;