From: bangerth Date: Wed, 6 Feb 2013 03:04:27 +0000 (+0000) Subject: Augment documentation. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e48c23cc808634a3e83932e5f4567f94c44b3d44;p=dealii-svn.git Augment documentation. git-svn-id: https://svn.dealii.org/trunk@28241 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/include/deal.II/base/function.h b/deal.II/include/deal.II/base/function.h index e41611040b..bf0c08183f 100644 --- a/deal.II/include/deal.II/base/function.h +++ b/deal.II/include/deal.II/base/function.h @@ -132,20 +132,25 @@ public: * Virtual destructor; absolutely * necessary in this case. * - * This destructor is declared - * pure virtual, such that - * objects of this class cannot - * be created. Since all the - * other virtual functions have a - * pseudo-implementation to avoid - * overhead in derived classes, - * this is the best place to do - * this. + * This destructor is declared pure virtual, such that objects of this class + * cannot be created. Since all the other virtual functions have a + * pseudo-implementation to avoid overhead in derived classes, they can not + * be abstract. As a consequence, we could generate an object of this class + * because none of this class's functions are abstract. * - * Nevertheless, since derived + * We circumvent this problem by making the destructor of this class + * abstract virtual. This ensures that at least one member function is + * abstract, and consequently, no objects of type Function can be + * created. However, there is no need for derived classes to explicitly + * implement a destructor: every class has a destructor, either explicitly + * implemented or implicitly generated by the compiler, and this resolves + * the abstractness of any derived class even if they do not have an + * explicitly declared destructor. + * + * Nonetheless, since derived * classes want to call the * destructor of a base class, - * the destructor is implemented + * this destructor is implemented * (despite it being pure * virtual). */