// Template method. cpp: defines the entry point of the console application.
//
# Include "stdafx. H"
# Include <iostream>
Using namespace STD;
Class abstractclass
{
Public:
Abstractclass (){}
Virtual ~ Abstractclass (){}
// This function defines the algorithm outline.
Void templatemethod ()
{
Primitiveoperation1 ();
Primitiveoperation2 ();
}
Protected:
// Pure virtual function, implemented by the derived class
Virtual void primitiveoperation1 () = 0;
Virtual void primitiveoperation2 () = 0;
};
// Inherit from abstractclass to implement algorithms
Class concreateclass: Public abstractclass
{
Public:
Concreateclass (){}
Virtual ~ Concreateclass (){}
Protected:
Virtual void primitiveoperation1 ()
{
Cout <"primitiveoperation1 by concreateclass/N ";
}
Virtual void primitiveoperation2 ()
{
Cout <"primitiveoperation2 by concreateclass/N ";
}
};
Int _ tmain (INT argc, _ tchar * argv [])
{
Abstractclass * pconcreateclass = new concreateclass;
Pconcreateclass-> templatemethod ();
Delete pconcreateclass;
Return 0;
}