Как использовать две функции-члены последовательно на указателе базового класса?

У меня возникли проблемы с использованием двух функций 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); он не падает и печатает исходную форму, но я не знаю, работает ли перевод.

0 ответов

Другие вопросы по тегам