[comp.lang.c++] Zortech bug in 2.01 -- bug:57502

steve@hite386.UUCP (Steve Hite) (01/22/90)

The following program segment died in Zortech C++ 2.01:

------------------------- cut here ---------------------------
struct point {
  int x;
  int y;
};

class shape {
public:
  shape();
  virtual ~shape() = 0;       // cause of death -- ZTCPP1 bug:57502
};

class circle : public shape {
  point center;
  int radius;
public:
  circle(int x, int y, int r);
  ~circle();
};

shape::shape()
{
}

circle::circle(int x, int y, int r)
{
  center.x = x;
  center.y = y;
  radius = r;
}

circle::~circle()
{
}

main()
{
}

------------------------------ cut here -------------------------------

This code passed compilation on CC 2.0 for 386/ix (distributed by Comeau)
and G++ 1.36.1.

   I realize that this is not a practical example because there is no  
need for a virtual destructor, but it bombed the compiler.  It brings
up a question I have anyway:

   If you want to make a base class explicitly abstract and the only
pure virtual function you have is a destructor, then is it good form
to say "virtual ~<class-name>() = 0;"?   

Thanks for the help.

--------------------------------------
Steve Hite
...gatech!uflorida!unf7!hite386!steve