c++有关类使用的一个问题

一个类这样写所涉及到哪些知识点,如果我要完全看明白需要学习哪些知识

构造函数中这样写:

ParaParser::ParaParser()
{                            
    m_handles.push_back(new ShowVersionParaHandler());
    m_handles.push_back(new SFtpsParaHandler());
}

使用场景:

bool ParaParser::Handle(const std::map<std::string, std::string>& paras)
{
    map<string, string> updateParas;
    for (std::vector<ParaHandler*>::iterator it = m_handles.begin(); it != m_handles.end(); ++it)
    {
        if ((*it != NULL) && (*it)->IsMatch(paras))
        {
            if ((*it)->Check(paras, updateParas) && (*it)->Handle(updateParas))
            {
                return true;
            }
        }
    }

    cout << "Parameter error." << endl;
    return false;
}

我大概明白这样写的目的是循环匹配
类ShowVersionParaHandler()和 类SFtpsParaHandler()中的IsMatch()方法、Check()方法、和Handle()方法
但是心中还是比较模糊,所以想学习一下其中的知识点和思想。

知识点:map是映射,vector是动态数组
ParaHander是基类,ShowVersionParaHandler和SFtpsParaHandler都是它的子类
动态数组m_handles记录基类指针
用for循环进行遍历