1
2class Base
3{
4public:
5  virtual int get_foo () { return 1; }
6  int base_function_only () { return 2; }
7};
8
9class Foo : public Base
10{
11
12private:
13  int foo_value;
14
15public:
16  Foo () { foo_value = 0;}
17  Foo (int i) { foo_value = i;}
18  ~Foo () { }
19  void set_foo (int value);
20  int get_foo ();
21
22  // Something similar to a constructor name.
23  void Foofoo ();
24
25  bool operator== (const Foo &other) { return foo_value == other.foo_value; }
26};
27
28void Foo::set_foo (int value)
29{
30  foo_value = value;
31}
32
33int Foo::get_foo ()
34{
35  return foo_value;
36}
37
38void Foo::Foofoo ()
39{
40}
41
42namespace Test_NS {
43
44int foo;
45int bar;
46
47namespace Nested {
48
49int qux;
50
51} /* namespace Nested */
52
53} /* namespace Test_NS */
54
55int main ()
56{
57  // Anonymous struct with method.
58  struct {
59    int get() { return 5; }
60  } a;
61  Foo foo1;
62  foo1.set_foo (42);		// Set breakpoint here.
63  a.get();			// Prevent compiler from throwing 'a' away.
64  return 0;
65}
66