🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.ibm.pc.programmer
Article #1004

Possible TC++ bugs

#1004
From: Jeff Gortatowsky CUST
Date: Sun, 22 Jul 1990 03:37
47 lines
2471 bytes
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.
Technical Details
Message-ID: <1990Jul22.033733.29657@sisd.kodak.com>
Path: arc1-ca.pugleaf.net!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

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!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