Как явно привести базовый класс к дочернему? void SplitString(int choice)
{
char string[100];
system("clear");
LevelHead("Тестирование","Строка-Идентификатор","Сложение строк");
cout << "Введите значение второго операнда" <> string;
Str_Indef strIndef(string);
strIndef = strIndef + (Str_Indef)pointClass[strArray[choice]];
strIndef.Print();
Pause();
}
/home/dikiigr/Desktop/Education/ЯВУ/Laba3/INHERIT/main.cpp|205|error: invalid conversion from ‘Stroka*’ to ‘char’ [-fpermissive]|
Здравствуйте, мне нужно привести родительский класс к дочернему , чтобы использовать перегруженный оператор дочернего класса. Не знаю как это реализовать. Господа знатоки , прошу вашей помощи .

21 Авг 2019 в 07:07
199 +1
1
Ответы
1

Чтобы явно привести базовый класс к дочернему, в вашем случае необходимо выполнить явное преобразование указателя на базовый класс к указателю на дочерний класс. Вот как это можно сделать в вашем коде:

void SplitString(int choice)
{
char string[100];
system("clear");
LevelHead("Тестирование","Строка-Идентификатор","Сложение строк");
cout << "Введите значение второго операнда" << endl;
cin >> string;
Str_Indef strIndef(string);
// Явное приведение указателя на базовый класс к указателю на дочерний класс
strIndef = strIndef + *((Str_Class*)pointClass[strArray[choice]]);
strIndef.Print();
Pause();
}

Здесь ((Str_Class*)pointClass[strArray[choice]]) означает явное приведение указателя pointClass[strArray[choice] к указателю на класс Str_Class. Обратите внимание, что перед выполнением такого преобразования необходимо удостовериться, что объект, на который указывает указатель, действительно является экземпляром класса Str_Class или его дочернего класса.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир