seesaw wrote:
[color=blue]
> When define an interface of all pure virtual functions, will the[/color]
destructor[color=blue]
> of it will automatically virtual, or it has to be declared as virtual?
> Should it be declared as "virtual" when defining the interface?[/color]
In C++, you don't pay for what you don't use.
Suppose, someday many winters from now, you wrote a program, and then
profiled it, and discovered the only way to make it faster was to take out a
single virtual destructor.
If the C++ committees had decreed that undeclared destructors of purely
abstract base classes were magically virtual, you would be screwed.
So, until that day, get in the habit of writing...
virtual ~myClass() = 0;
....to make destructors pure virtual, too.
(If the abstract class weren't pure - if it had a member that needs
destruction, the = 0 won't prevent this.)
--
Phlip
http://www.xpsd.org/cgi-bin/wiki?Tes...UserInterfaces