Бьерн Страуструп.
Язык программирования С++
355
class myfilter : public filter {
istream&
is;
ostream&
os;
char
c;
int
nchar;
public:
int read() { is.get(c); return is.good(); }
void compute() { nchar++; };
int
result()
{ os << nchar
<<
"characters
read\n";
return
0;
}
myfilter(istream& ii, ostream& oo)
: is(ii), os(oo), nchar(0) { }
};
и вызывать ее следующим образом:
int main()
{
myfilter
f(cin,cout);
return
main_loop(&f);
}
Настоящий каркас, чтобы рассчитывать на применение в реальных задачах, должен создавать более
развитые структуры и предоставлять больше полезных функций, чем в
нашем простом примере. Как
правило, каркас образует дерево узловых классов. Прикладной программист поставляет только классы,
служащие листьями в
этом многоуровневом дереве, благодаря чему достигается общность между
различными прикладными программами и упрощается повторное использование полезных функций,
предоставляемых каркасом. Созданию каркаса могут
способствовать библиотеки, в
которых
определяются некоторые полезные классы, например, такие как scrollbar ($$12.2.5) и dialog_box
($$13.4). После определения своих прикладных классов программист может использовать эти классы.
Достарыңызбен бөлісу: