我是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);
祝好运。