[comp.lang.c++] simul. class and object decls

djones@megatest.UUCP (Dave Jones) (01/18/88)

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.