Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!zaphod.mps.ohio-state.edu!ncar!mephisto!udel!rochester!kodak!sisd!news From: jdg@sisd.kodak.com (Jeff Gortatowsky CUST) Newsgroups: comp.sys.ibm.pc.programmer Subject: Possible TC++ bugs Message-ID: <1990Jul22.033733.29657@sisd.kodak.com> Date: 22 Jul 90 03:37:33 GMT Sender: news@sisd.kodak.com Distribution: usa Organization: Eastman Kodak Company, Rochester NY Lines: 47 Here's a couple of possible TC++ 1.0 bugs. I'm still getting used to C++ so maybe I'm wrong. Try: if (SomeCondition) for (int i = 0; i < 100; i++) // <-- TC++ says this line in error printf ("%d\n",i); TC++ Tells me "Declaration not allowed here". I say, Why not? However: if (SomeCondition) { // < Note brace! for (int i = 0; i < 100; i++) // <-- TC++ says this is A-OK printf ("%d\n",i); } // Note: Brace! TC++ thinks this is dandy. "Me thinks it's a bug." The braces start a new scope. That's why TC++ say everything is ok when braces are present. But I thought you could declare variables just about anywhere.? Now for a more complex problem. Starting with the mcircle example program in the TC++ distribution I made a change or two. Lots deleted for brevity! // Classes: Location, Point, Circle, GMessage, and MCircle // Class inheritance: // Location->Point->Circle (Circle inherits Point which inherits Location) // Location->GMessage (Notice Point is not inherited) // (Circle and GMessage)->MCircle (Inherits Point from Circle, Yes?) ...... main(int argc, char **argv) //draws some circles with text { Point *pp; //Point pointer MCircle Small(250, 100, 25, SANS_SERIF_FONT, "You"); //make an MCircle pp = (Point *)&Small; // <- without explict cast, TC++ gives error ....... } Without the cast to Point pointer TC++ tells me it's an illegal assignment even though Point is a base class of MCircle via Circle. Now GMessage is derived from only Location. Is that the reason I must use a cast? Because GMessage has no Point class? In multiple inheritance must all base classes have a class of 'type' before you can use a base class pointer? Something I'm missing? BTW: Zortech 2.1 does not squawk about either example/bug. -- Jeff Gortatowsky-Eastman Kodak Company .....uunet!atexnet!kodak!elmgate!jdg (716)-726-0084 Eastman Kodak makes film not comments. Therefore these comments are mine not theirs.