/*.h of base class, the .cpp is empty*/
#ifndef ICDDLIST_H
#define ICDDLIST_H
template < typename T>
class ICircularDoubleDirectedList
{
public :
enum direction { FORWARD, BACKWARD } ;
virtual direction getCurrentDirection( ) const = 0 ;
} ;
#endif
/*.h of class*/
class CircularDoubleDirectedList: public ICircularDoubleDirectedList< int >
{
public :
CircularDoubleDirectedList( ) ;
~CircularDoubleDirectedList( ) ;
direction getCurrentDirection( ) const ;
private :
direction currentDirection;
} ;
/*.cpp of class*/
#include <iostream>
CircularDoubleDirectedList:: CircularDoubleDirectedList ( ) { }
CircularDoubleDirectedList:: ~CircularDoubleDirectedList( ) { }
CircularDoubleDirectedList:: direction CircularDoubleDirectedList:: getCurrentDirection ( ) const {
return this- > currentDirection;
}
LyouaCBvZiBiYXNlIGNsYXNzLCB0aGUgLmNwcCBpcyBlbXB0eSovCiNpZm5kZWYgSUNERExJU1RfSAojZGVmaW5lIElDRERMSVNUX0gKIAogCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpjbGFzcyBJQ2lyY3VsYXJEb3VibGVEaXJlY3RlZExpc3QKewpwdWJsaWM6CiAgICBlbnVtIGRpcmVjdGlvbiB7IEZPUldBUkQsIEJBQ0tXQVJEIH07CiAgICB2aXJ0dWFsIGRpcmVjdGlvbiBnZXRDdXJyZW50RGlyZWN0aW9uKCkgY29uc3QgPSAwOwp9OwogCiNlbmRpZgogCiAKLyouaCBvZiBjbGFzcyovCmNsYXNzIENpcmN1bGFyRG91YmxlRGlyZWN0ZWRMaXN0OnB1YmxpYyBJQ2lyY3VsYXJEb3VibGVEaXJlY3RlZExpc3Q8aW50Pgp7CiAgICBwdWJsaWM6CiAgICAgICAgQ2lyY3VsYXJEb3VibGVEaXJlY3RlZExpc3QoKTsKICAgICAgICB+Q2lyY3VsYXJEb3VibGVEaXJlY3RlZExpc3QoKTsKIAogICAgICAgIGRpcmVjdGlvbiBnZXRDdXJyZW50RGlyZWN0aW9uKCkgY29uc3Q7CiAKICAgIHByaXZhdGU6CiAgICAgICAgZGlyZWN0aW9uIGN1cnJlbnREaXJlY3Rpb247Cn07CiAKLyouY3BwIG9mIGNsYXNzKi8KI2luY2x1ZGUgPGlvc3RyZWFtPgogCkNpcmN1bGFyRG91YmxlRGlyZWN0ZWRMaXN0OjpDaXJjdWxhckRvdWJsZURpcmVjdGVkTGlzdCgpIHt9CkNpcmN1bGFyRG91YmxlRGlyZWN0ZWRMaXN0Ojp+Q2lyY3VsYXJEb3VibGVEaXJlY3RlZExpc3QoKXt9CiAKQ2lyY3VsYXJEb3VibGVEaXJlY3RlZExpc3Q6OmRpcmVjdGlvbiBDaXJjdWxhckRvdWJsZURpcmVjdGVkTGlzdDo6Z2V0Q3VycmVudERpcmVjdGlvbigpIGNvbnN0IHsKICAgIHJldHVybiB0aGlzLT5jdXJyZW50RGlyZWN0aW9uOwp9