Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Ошибка при преобразовании


Автор: Rubio 24.2.2013, 21:04
Код
#include <iostream>
using namespace std;

class List
{
protected:
    int myvalue;
    List *myNext;
public:
    List(int value)
    {
        myvalue = value;
        myNext = 0;
    }
    void addvalue(int value)
    {
        List *current = this;
        while (current -> myNext != 0)
        {
            current = current -> myNext;
        }
        current -> myNext = new List(value);
    }
    int length()
    {
        int сounter = 0;
        for(List *current = this; current != 0; current = current -> myNext)
        {
            сounter++;
        }
        return сounter;
    }
    void print()
    {
        for(List *current = this; current != 0; current = current -> myNext)
            {
                cout << current->myvalue << endl;
            }
    }
};
class Doublelist : public List
{
private:
    List *myPrevious;
public:
    Doublelist(int value) : List(value)
    {
        myPrevious = 0;
    }
    void addvalue(int value)
    {
        Doublelist *current = this;
        while (current -> myNext != 0)
        {
            current = (Doublelist)current -> myNext;
        }
        current -> myNext = new Doublelist(value);
        ((Doublelist)current -> myNext) -> myPrevious = current;
    }
};

Взял пример кода из лекции, но у меня почему то не работает, выдет ошибку:
IntelliSense: не существует подходящего конструктора для преобразования из "List *" в "Doublelist"
В 55 и 58 строках.
Модератор: не забываем пользоваться кнопочкой "Код"

Автор: baldina 25.2.2013, 01:33
(Doublelist*)

Автор: Rubio 25.2.2013, 13:00
Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)