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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Теория. Почему в данном случае copy() не работает после reserve(), но работает после resize()? http://www.cyberforum.ru/cpp-beginners/thread53667.html
Есть такая функция: void Array::SetStartIndexes(sz3_Arr_t *array) { start_index.reserve(array->size()); copy(array->begin(),array->end(),start_index.begin()); std::cout<<start_index.at(0); } Где sz3_Arr_t это vector<int>, array - содержит элементы типа int на момент передачи параметром (проверено печатью), start_index - вектор того же типа,что и array,на момент...
C++ gcc VS DEV-C++ 4.9.9.2 Люди!! Срочно нужны знающие люди по данному вопросу.Только сейчас узнал,что вся практика будет в gcc...... Какие отличия вообще между ними ?! Программенг в SunOS... gcc сишный компиль.а вот DEV-C++ - чисто *приплюснутый*... Очень интересно,будут ли моя познания в с++ исковерканы gcc-ым компилем). http://www.cyberforum.ru/cpp-beginners/thread53664.html
C++ Преобразовать последовательность
Народ, сталкнулся с таким заданием (я примерно понял как делать) возникла проблема. Задачние: Даны действительные числа А1,...А20. Преобразовать последовательность: А1,А3,А5...А19; А2,А4...А20. Я думаю что меняем местами элементы, протягом, т.е. (например было: 12345, меняем 5 и 1, тогда стало: 51234, т.е. последовательно делали: 12354, 12534, 15234, 51234). Проблема состоит в том что немогу...
C++ Проблема со считыванием строк из класса.
Всем привет.На ютубе узрел ролик... using namespace std; int main() { ifstream f("C:\Documents and Settings\Vlad\My Documents\My Pictures\fuck.txt");
C++ Отсортировать все символы в порядке возрастания методом пузырька http://www.cyberforum.ru/cpp-beginners/thread53649.html
символы: M A S S I V - char нужно Отсортировать все символы в порядке возрастания медодом пузырька .Нужно нарисовать блок схему (((((( Мальчики ПОМОГИТЕ!!!! кто может пожалуйста..!(((
C++ Многочлен P(x) степени N помогите с задачкой: задача: Дан многочлен Р(х) степени N. Даны действительные числа А и В. Получить многочлен (Ах+В)Р(х). прогу писать не нада. помогите плиз написать математическую формулу решения задачи. подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,902
Завершенные тесты: 1
02.10.2009, 20:33     Проблема с абстрактными классами и перегрузкой операторов
Ну судя по приведённому коду, тебе надо возвращать не Abstract, а Abstract*. Так ты можешь невозбранно создавать через new производный класс и возвращать указатель на него. Это раз. Операция сложения определена, естественно, для объектов, а не для указателей на них, так что придётся писать
C++
1
_objects["ob1"] = *_objects["ob2"] + *_objects["ob3"];
Это два. Ещё лучше - вместо виртуального оператора сложения определить внешний (кстати, именно такой оператор получает 2 аргумента, а принадлежащий классу, как у тебя, получает только второй операнд, потому что первый - this). Определив внешний оператор для сложения двух Abstract&, ты можешь сделать его другом Abstract и определить в самом Abstract и потомках частные виртуальные методы, предоставляющие всё необходимое для операции сложения и задействовать эти методы в данном операторе.
 
Текущее время: 22:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru