ข้อผิดพลาด: ไม่ตรงกันสำหรับการเรียกไปที่ '(const std::basic_string‹char›) ()'

ฉันมีแผนแผนที่ซึ่งแมปคู่ของสองคลาสกับสตริงแบบธรรมดา "FirstCollection" และ "SecondCollection" เป็นคลาส "myCollection" เป็นวัตถุหนึ่งในนั้น แต่เมื่อวนซ้ำบนแผนที่ ฉันได้รับข้อผิดพลาดในการคอมไพล์:

ข้อผิดพลาด: ไม่ตรงกันสำหรับการเรียกไปที่ '(const std::basic_string) ()'

typedef std::map <
    std::pair < Collection, Envelope::Envelope >
  , std::string > NameMap;

NameMap globalNameMap = map_list_of
        ( std::make_pair ( FirstCollection, Envelope::A ), "Something")
        ( std::make_pair ( SecondCollection, Envelope::B ), "Another thing")


    NameMap::const_iterator iter
            = globalNameMap.find( std::make_pair ( myCollection, myEnvelope ));

    if ( iter == globalNameMap.end() )
    {
          parent->setName("anything");
    } else {
          parent->setName(iter->second());
    }

ข้อผิดพลาดในบรรทัดนี้: parent->setName(iter->second());

มีข้อเสนอแนะอะไรบ้าง?


person Sadik    schedule 15.04.2014    source แหล่งที่มา


คำตอบ (1)


iter->second เป็นตัวแปรสมาชิกไม่ใช่ฟังก์ชัน ลบวงเล็บ: parent->setName(iter->second);

person Ivaylo Strandjev    schedule 15.04.2014