Path: utzoo!utgpu!water!watmath!clyde!rutgers!gatech!hao!ames!amdahl!dlb!megatest!djones From: djones@megatest.UUCP (Dave Jones) Newsgroups: comp.lang.c++ Subject: simul. class and object decls Message-ID: <219@goofy.megatest.UUCP> Date: 18 Jan 88 05:00:48 GMT Organization: Megatest Corporation, San Jose, Ca Lines: 42 In a previous posting, I made some suggestions about writing macros for the automation of deriving classes. (See page 209 of The Book: "Generic Classes".) It has come to my attention that an inconsistancy in cfront effectively squelches the scheme when constructors of derived classes need parameters. This is apparently a legal declaration of BOTH class-foo AND the object bar: class foo { int j; } bar; BUT, if the class requires a parameter for the constructor, you have trouble (and a nonsense error message): class foo { int j; public: foo(int i) { j = i; } }bar(5); "foo.C", line 6: sorry, not implemented: class foo defined as return type for bar() (did you forget a ';' after '}' ?) THIS IS OKAY, however: class foo { int j; public: foo(int i) { j = i; } }; foo bar(5); Looks like I'll have to face it: For release 1.2 at least, you need a name and a separate declaration for every new derived class, even if you only want to declare one object of that class, and don't care what the class is called.