Форум программистов, компьютерный форум CyberForum.ru

Присваивание объекта базового класса наследуемому - C++

Восстановить пароль Регистрация
 
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
31.07.2013, 22:18     Присваивание объекта базового класса наследуемому #1
Тут используется библиотека Qt, но вопрос не по ней, тему переносить не стоит!

Суть в том, что я из главного класса вынес в отдельный класс функции, которые отвечают за парсинг строки. Т.е. я сделал так
C++
1
class QMyString : public QString
Я хотел создать объект этого класса, присвоить туда какую-то строку (веб-страницу), вызвать метод к примеру getSomething() и получить нужное (раньше мне приходилось передавать параметром эту страницу, но т.к я собираю много данных со страницы, удобнее раз присвоить и дальше просто вызывать методы). Проблема в том, что у меня не получается присвоить объект базового класса объекту наследнику
К примеру так
C++
1
2
QString str = "string";
QMyString mystr = str;//error
Как можно решить этот вопрос? Может у меня плохая структура и следует сделать как-то лучше? Или перегрузить оператор присваивания?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2013, 22:18     Присваивание объекта базового класса наследуемому
Посмотрите здесь:

C++ Использование перегруженного оператора ввода/вывода в поток базового класса для объекта производного класса
C++ Вызов метода производного класса через обращение к методу базового класса
Как используя закрытое наследование использовать 2 объекта базового класса? C++
C++ Как построить экземпляр дочернего класса на основе готового экземпляра базового класса?
C++ Присваивание объекта класса ofstream
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
31.07.2013, 22:28     Присваивание объекта базового класса наследуемому #2
Реализовать соответствующий конструктор, ибо они не виртуальны:

C++
1
QMyString( const QString& qStr );
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
31.07.2013, 22:32  [ТС]     Присваивание объекта базового класса наследуемому #3
Да, но это то же самое, что и присваивание. Т.е вариантов лучше нет?
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
31.07.2013, 22:34     Присваивание объекта базового класса наследуемому #4
1) Это не то же самое.
2) Других вариантов просто нет.
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
31.07.2013, 22:41  [ТС]     Присваивание объекта базового класса наследуемому #5
Цитата Сообщение от Fyret Посмотреть сообщение
1) Это не то же самое.
2) Других вариантов просто нет.
1) Я про то, как туда "класть" эту строку, практически то же самое) Объект будет вообще один, каждый раз будет обычное присваивание. Или все равно разные вещи?
2) И тут может оставить в главном кассе или сделать что-то другое, более практичное
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
31.07.2013, 22:48     Присваивание объекта базового класса наследуемому #6
Конечно, один, там же один объект и создается.
По поводу классов: не совсем правильно судить по Вашему краткому описанию, но делать обертку над классом ради нескольких функций парсинга я бы не стал. Или создать просто отдельный класс какого-то парсера, или несколько свободных функций в отдельном неймспейсе.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2013, 23:11     Присваивание объекта базового класса наследуемому
Еще ссылки по теме:

Создание полиморфного объекта, зачем создавать указатель на объект базового класса? C++
C++ Что делать если нужно знести информацию в 2 разных объекта базового класса при закрытом наследование
Указатель на объект базового класса и адрес объекта производного класса C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
31.07.2013, 23:11  [ТС]     Присваивание объекта базового класса наследуемому #7
Цитата Сообщение от Fyret Посмотреть сообщение
Реализовать соответствующий конструктор, ибо они не виртуальны:

C++
1
QMyString( const QString& qStr );
Нельзя ли пример? только с =
Yandex
Объявления
31.07.2013, 23:11     Присваивание объекта базового класса наследуемому
Ответ Создать тему
Опции темы

Текущее время: 14:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru