Бьерн Страуструп.
Язык программирования С++
40
template < class T >
class lstack : public stack < T >
{
//
...
};
Теперь можно создавать и использовать стеки:
void g ()
{
lstack < cat > s1 ( 100 );
astack < cat > s2 ( 100 );
cat
Ginger;
cat
Snowball;
some_function ( s1, Ginger );
some_function ( s2, Snowball );
}
О том, как представлять стеки разных видов, должен беспокоиться только тот, кто их создает (т.е.
функция g()), а пользователь стека (т.е. автор функции some_function()) полностью огражден от деталей
их реализации. Платой за подобную гибкость является то, что все операции над стеками должны быть
виртуальными функциями.
Достарыңызбен бөлісу: