问问题
6978 次
1 回答
4
~CharArray
在一个名为的类中声明一个名为的成员ConcreteCharArray
是非法的,这是编译器告诉你的。的存在~
表明您正在声明一个析构函数,并且析构函数的名称必须与类的名称匹配。
析构函数是特殊的成员函数。它们的特殊属性之一是,为了覆盖基类的虚拟析构函数,您不必匹配派生类中该析构函数的名称(就像您通常对普通成员函数所做的那样)。编译器会自动将析构函数相互匹配,即使它们的名称不同。这很容易做到,因为每个类都有一个且只有一个析构函数。
所以,如果你想在类中声明一个析构函数,ConcreteCharArray
你必须调用那个析构函数~ConcreteCharArray
。没有其他选择。即使派生析构函数的名称与基析构函数的名称不同,派生析构函数将被视为虚拟并覆盖基析构函数。
于 2013-09-15T02:10:30.197 回答