1template <class T>
2class Adder {
3public:
4  void set(T);
5  T get();
6  T add(T);
7
8private:
9  T val;
10};
11
12template <class T>
13void Adder<T>::set(T new_val)
14{
15  val = new_val;
16}
17
18template <class T>
19T Adder<T>::get()
20{
21  return val;
22}
23
24template <class T>
25T Adder<T>::add(T new_val)
26{
27  val += new_val;
28  return val;
29}
30
31