@SkyCrusher

C++ значение типа нельзя использовать для инициализации сущности типа?

Хочу с помощью указателя на базовый класс ссылаться на производный. Выдает ошибку: "значение типа нельзя использовать для инициализации сущности типа". Что не так, и как это исправить?
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <string>
#include <list>

using namespace std;

class Base {
public:

	Base* parent;
	list<Base*> childrens;
	string name;
	bool status;
	bool isRoot;

	Base(string paramName, Base* paramParent) {
		name = paramName;
		parent = paramParent;
	}

	Base(string paramName) {
		name = paramName;
		isRoot = true;
	}

	void AddChildren(Base* children) {
		childrens.push_back(children);
	}

	void SetStatus(bool paramStatus) {
		status = true;
	}
};

class root : Base {
public:
	root(string paramName) : Base(paramName) {
	}
};

int main() {
	root *Root = new root("root");
	Base *b = &Root;
	return 0;
}
  • Вопрос задан
  • 3901 просмотр
Решения вопроса 1
Base *b = reinterpret_cast<Base*>(root)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы