C++ primer中的这个有关问题自相矛盾了吗?

C++ primer中的这个问题自相矛盾了吗????
C++   primer   原文:


inline   IntArrayRC::IntArrayRC(   int   sz)
:   IntArray(   sz   )   {}
inline   IntArrayRC::IntArrayRC(   const   int   *iar,   int   sz   )
:   IntArray(   iar,   sz   )   {}
由冒号分割出来的部分称作成员初始化列表member   initialization   list   它提供了一种
机制通过这种机制我们可以向IntArray   的构造函数传递参数两个IntArrayRC   构造函数
的函数体都是空的因为它们的工作就是把参数传递给相关的IntArray   构造函数我们无需
提供显式的IntArrayRC   析构函数因为派生类没有引入任何需要析构的数据成员继承过来
的需要析构的IntArray   成员都由IntArray   的析构函数来处理。


下面是矛盾的地方:

class   IntArray   {
public:
//   构造函数
explicit   IntArray(   int   size   =   DefaultArraySize   );
IntArray(   int   *array,   int   array_size   );
IntArray(   const   IntArray   &rhs   );
//   虚拟析构函数
virtual   ~IntArray()   {   delete   []   ia;   }
//   等于和不等于操作
bool   operator==(   const   IntArray&   )   const;
bool   operator!=(   const   IntArray&   )   const;
IntArray&   operator=(   const   IntArray&   );
int   size()   const   {   return   _size;   }
//   去掉了索引检查功能   .   .   .
virtual   int&   operator[](int   index)   {   return   ia[index];   }
virtual   void   sort();
virtual   int   min()   const;
virtual   int   max()   const;
virtual   int   find(   int   value   )   const;
protected:
//   参见13.5   节的说明
static   const   int   DefaultArraySize   =   12;
void   init(   int   sz,   int   *array   );
int   _size;
int   *ia;
};


为什么他还要把class   IntArray这个基类中的析构函数定义成虚函数那???????????????

------解决方案--------------------
我们“无需提供显式的IntArrayRC 析构函数”因为派生类没有引入任何需要析构的数据成员继承过来的需要析构的IntArray 成员都由IntArray 的析构函数来处理。

LZ看清楚他说的是哪个类。。。
------解决方案--------------------
说的是派生类,基类还是需要析构的
------解决方案--------------------
现在只是有一个IntArrayRC一个子类,
它不需要自己提供析构函数,
但谁能保证,以后没有别的类继承自IntArray,而且还需要显式的提供自己的析构函数呢?
很多资料上说,
基类虚函数声明为virtual,而且有时是纯vritual,是非常常见的,
对abstract的基类来说是必须的
------解决方案--------------------
你说的我知道啊,就是
“为什么他还要把class IntArray这个基类中的析构函数定义成虚函数那?”
声明成虚函数就说明在派生类中要重新定义这个析构函数啊。

不一定要在派生类重新定义虚函数的,不重新定义就调用基类的虚函数
------解决方案--------------------
但是如果在基类中定义了构造函数,定义一个析构函数也是很自然的,基类的析构函数一般就要定义成vitual的,因为在以后的类扩展中你也许会在派生类中引入析构函数,毕竟vitual基类的析构函数也没什么坏处!