我是C ++的新手,所以如果我弄错了一些术语,请原谅...

我的简化问题如下:

我有一类叫Contact

定义是这样的:

class Contact
{
private:
    int id;
public:
    Contact(void);
    Contact(int);
    int returnContact(void);
};


并在Contact.cpp中

  Contact::Contact(void)
    {
    }
    Contact::Contact(int setId)
    {
       id = setId
    }
    int Contact::returnContact(void)
    {
       return id;
    }


现在可以正常工作了...

现在在我的main.cpp文件中定义2个联系人:

Contact marc(0);
Contact philippe(1);


我想做的事:
等待输入,如果输入是marc,则打印0(id),如果输入是philippe,则打印1。

我试图做的是:

while (true) {
        string tempword = "";

        cin >> tempword;
    cout << tempword.Contact::returnContact();
    }


显然这是行不通的,但是没有人知道一个很好的解决方案来使其正常工作吗?

非常感谢nxt191,又名Marc

最佳答案

似乎您正在尝试在字符串上调用函数。尝试调整您的Contact类方法returnContact以获取字符串。 returnContact(const &string str);

要完全获得所需的功能,可能需要添加另一个名为ContactManager之类的类。

您可以添加每个联系人,然后在每次输入匹配的字符串时询问管理员。

ContactManager manager;
manager.addContact(marc);
manager.addContact(tom);

// read in a name

manager.findContact(name);


祝好运。

09-27 06:09