Как использовать две функции-члены последовательно на указателе базового класса?
У меня возникли проблемы с использованием двух функций memeber на указатель базового класса. У меня есть следующий код;
cout << "Please input the translation vector. (x value ' ' y value)" << endl;
cin >> Xtrans >> Ytrans;
cout << endl;
new_shape = Trans + user_input; // adds Tranaslated to the key
for(it = shape_map.begin(); it != shape_map.end(); ++it){// loops over map (it is defined earlier)
cout << endl;
if( it->first == user_input){
cout << "ID " << new_shape << " = " << endl; // ouput the key witch also id's the shape
it->second->translate(matrix(Xtrans, Ytrans))->printshape(); //<-this one
}
}
Цель кода - перевести форму (у меня есть несколько классов для нескольких типов, которые получены из абстрактного базового класса, называемого многоугольником), а затем распечатать новую форму. У меня есть функция перевода и печати, которые работают отдельно, но когда я объединяю их, код запускается, но вылетает, когда он достигает отмеченной строки.
Когда я отлаживаю код, строка в моей функции перевода подсвечивается.
Это правильный способ объединить две функции? Должен ли я иметь какой-то промежуточный шаг?
БОЛЬШЕ ИНФОРМАЦИИ
карта формы <string, polygon*>
когда я делаю,it->second->printshape();
или же it->second->translate(matrix(Xtrans, Ytrans);
он не падает и печатает исходную форму, но я не знаю, работает ли перевод.