我是C ++的新手,今天我正尝试使访问成为main()外部的公共类成员,更确切地说是在另一个函数中。
我试图创建指向该类的指针,但是无法访问其成员。我将展示一个包含几行代码的示例,希望能对您有所帮助。
Class City
{
private:
string name;
public:
string getName()
{
return name;
}
};
bool isCity(string input)
{
if(input== ???) { return true; }
return false;
}
*问题:如何从我在main()中创建的类中的问号访问公共成员getName()
int main()
{
string input;
City test;
cin >> input;
isCity(input);
cin.get();
}
指向Class的指针不起作用,引用传递也不起作用。
答案 0 :(得分:2)
最简单的方法是将isCity作为类的一部分,并将其作为对象test.isCity(input);
的方法来调用
该类应如下:
Class City
{
private:
std::string name;
public:
std::string getName() const
{
return name;
}
bool isCity(const std::string& input) const
{
return input.compare(name) == 0
}
};
否则,您可以拥有一个自由函数(在类外部),但是签名应提供类city
对象,如下所示:
bool isCity(const City& c, const std::string& input)
{
return input.compare(c.GetName()) == 0;
}
这意味着您必须按以下方式调用该函数:
isCity(test, input);