【发布时间】:2011-05-19 11:36:47
【问题描述】:
我有一个带有嵌套类 Inner_vector 的 A 类,
class A:
{
public:
class Inner_vector:public Vector
{
bool append(const class Element& element);
};
};
bool A::Inner_vector::append(const class Element& element)
{
add(element);
}
现在我想从A派生一个子类,还要自定义内部类“Inner_vector”的“append”和“delete”方法(主要是添加一个新的操作),这样自定义的操作就会被调用.我怎么能做到?我是否还应该从 A::Inner_vector 在 Child_A 中派生一个新的嵌套类,如下代码
class Child_A: public A
{
public:
class Inner_Child_vector : public A::Inner_vector
{
bool append(const class Element& element);
};
};
bool Child_A::Inner_Child_vector::append(const class Element& element)
{
A::Inner_vector::append();
my_new_operation();
}
或者我不需要从A::Inner_vector派生出来直接重写?
我非常感谢任何帮助和 cmets。
【问题讨论】:
-
我希望你没有从 std::vector 继承?因为那是个坏主意!
-
Inner_vector是如何使用的? -
不,Vector 是一些自定义的基类,它实际上使用了 std::vector。但我无法改变这一点,可能我也无法改变 A 类。
-
Inner_vector 是如何使用的?我认为它将主要通过对象 A 调用,并附加/删除元素。
标签: c++ inheritance inner-classes nested-class