【问题标题】:Runtime error when trying to use a superclass in C++尝试在 C++ 中使用超类时出现运行时错误
【发布时间】:2011-12-02 10:49:12
【问题描述】:

已解决 * 实际上发生错误是因为它没有使用子类的方法,因为它们是在超类中实现的,这就是为什么如果从 ListaIterador 类调用但不使用它的原因如果从上层调用。

您好,我创建了一个泛型类型的 ListIterator 类,它扩展了 Iterator,所以我确实在 ListIterator 类中实现了迭代器的方法。这个想法是创建一个迭代器,仅用于使用 Iterator 类中可用的方法(只读方法)。 首先我创建一个 ListIterator,插入一些东西,然后我想创建一个迭代器对象并使用只读方法但在列表上。 我希望我说清楚了,注意我是用西班牙语编码的,所以 Iterador 表示 Iterator,Insertar 是 Insert,Avanzar 也表示 Next。

这段代码抛出了运行时执行错误,不知道为什么,也许你可以给我一个解决方案

    ListaIterable<int> *iter = new ListaIterable<int>;
    Iterador<int> *ITERADOR = iter;

iter->Insertar(123); //note here I use iter and not ITERATOR for inserting.
iter->Insertar(987); //also here

cout << ITERADOR->ElementoActual()<<endl; //now this method should show the element
ITERADOR->Avanzar() // means next()
cout << ITERADOR->ElementoActual()<<endl;

【问题讨论】:

  • 什么错误?访问无效或空指针是访问冲突还是段错误?
  • 关于断言失败的事情
  • 我正在尝试做这样的事情。每人=新运动员();人 per2 = 每人; per2->ShowName();应该工作
  • 在调试器中运行代码,看看哪里出错了。
  • @HoNgOuRu: 一些关于... 包括错误的完整描述、引发错误的位置以及关于ListaIterableIterador 的一些相关代码。

标签: c++ inheritance interface


【解决方案1】:

实际上发生错误是因为它没有使用子类的方法,因为它们是在超类中实现的,这就是它的原因

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 2013-06-16
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 2022-01-11
    • 2022-06-11
    • 1970-01-01
    相关资源
    最近更新 更多