如何在基类指针上依次使用两个成员函数?

时间:2015-04-24 10:09:50

标签: c++ maps base-class member-function-pointers

我在基类指针上使用两个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
        }
    }

代码的目的是翻译一个形状(我有几个类型的不同类,这些类派生自一个名为polygon的抽象基类),然后打印新的形状。我有一个单独工作的翻译和打印功能但是当我将它们组合起来时,代码会运行,但当它到达标记的行时会崩溃。

当我调试代码时,我的翻译功能中的一行会突出显示。

这是组合两个功能的正确方法吗?我应该有一些中间步骤吗?

更多信息

shape_map是<string, polygon*>

当我这样做时,it->second->printshape();it->second->translate(matrix(Xtrans, Ytrans);它不会崩溃并打印原始形状,但我不知道翻译是否有效。

0 个答案:

没有答案