1// -*- C++ -*-
2//    main.cpp -- tagdemo test program
3//    Copyright (C) 1998-2000 Free Software Foundation, Inc.
4//    Originally by Thomas Tanner <tanner@ffii.org>
5//    This file is part of GNU Libtool.
6
7// This program is free software; you can redistribute it and/or modify
8// it under the terms of the GNU General Public License as published by
9// the Free Software Foundation; either version 2 of the License, or
10// (at your option) any later version.
11
12// This program is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15// GNU General Public License for more details.
16
17// You should have received a copy of the GNU General Public License
18// along with this program; if not, write to the Free Software
19// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
20// USA.
21
22
23#include "foo.h"
24#include "baz.h"
25#include <iostream.h>
26
27
28int
29main (int, char *[])
30{
31  cout << "Welcome to GNU libtool tagdemo C++!" << endl;
32
33  foobar_derived FB;
34  // Instantiate the derived class.
35
36  foobar *fb = &FB;
37  // Have some fun with polymorphism.
38
39  int value = fb->hello();
40
41  cout << "foobar::hello returned: " << value << endl;
42  if (value == HELLO_RET)
43    cout << "foobar::hello is ok!" << endl;
44
45  if (fb->foo() == FOO_RET)
46    cout << "foobar::foo is ok!" << endl;
47
48  // --------------
49
50  barbaz_derived BB;
51  // Instantiate the derived class.
52
53  barbaz *bb = &BB;
54  // Have some fun with polymorphism.
55
56
57  // barbaz_derived::baz() should return FOO_RET since it calls
58  // foobar_derived::foo(), which in turn calls ::foo().
59  if (bb->baz() == FOO_RET)
60    cout << "barbaz::baz is ok!" << endl;
61
62  return 0;
63}
64