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