Наследование в классах. C ++

0

Скажем, я создаю дерево, и у меня есть класс Node и класс Cars.

   class Cars : public Node{
     ....
    };

Если у меня есть объект, все готовый, определенный как узел, но теперь я хочу, чтобы он сделал его также автомобилем, как бы я это сделал?

Спасибо !

  • 2
    Если я правильно вас понимаю, боюсь, вы не сможете делать то, что хотите. Но вы можете создать новый объект Cars из существующего объекта Node, определив конструктор преобразования для класса Cars, который определяет, как сделать объекты Cars из объектов Node.
  • 0
    Создайте объект для класса Cars и вызовите методы в классе Node через объект Cars.
Теги:
class
inheritance

1 ответ

0
Лучший ответ

Самое близкое, что вы можете сделать, это предоставить конструктор преобразования для вашего класса Cars и создать новый экземпляр:

class Node
{
    // stuff goes here
};

class Cars : public Node
{
public:
    // other constructors, destructor, members, etc.
    Cars(const Node& node)
    {
        // copy node data into the Node portion of the car
    }
};

int main()
{
    Node n;
    Car c(n);
    return 0;
}

Если вы сначала создадите его как Node, вы не сможете магически изменить его на Car не создавая фактический экземпляр Car и не копируя в него данные.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню