[英]Define member variables of class inside function
我知道有多个关于此主题的帖子,但我感觉情况有些不同。 我不知道我想做的事情是否可行,如果没有,请告诉我! 现在,我有如下代码:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Something
{
public:
string location;
string isLocal;
string IPAddress;
string setString(string key)
{
//key will be either location, isLocal, or IPAddress
//set that value to "found" so when I call the member variable later, it will output found
}
};
int main(int argc, char* argv[])
{
DLNA local;
string answer = local.setString("IPAddress");
cout << local.IPAddress; // should return "found"
return 0;
}
基本上,在函数setString中,我试图根据传入的字符串将成员变量初始化为默认值。但是,我似乎不知道该怎么做。 当我在main函数中调用成员变量时,仅声明一个本地DLNA并在setString函数中设置其值似乎没有任何影响。 有谁知道我如何解决我的问题,或者甚至有可能解决?
谢谢!
您可能想要这个权利吗? 侦察员结束后立即仔细观察那尾。 那会冲洗掉“东西”。 因此它将在屏幕上打印输出。 尝试在没有endl的情况下运行它。 希望这可以帮助
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Something
{
public:
string location;
string isLocal;
string IPAddress;
string setString(string key)
{
if (key == "location")
{
location = "found";
return location;
}
else if (key == "isLocal")
{
isLocal = "found";
return isLocal;
}
else if (key == "IPAddress")
{
IPAddress = "found";
return IPAddress;
}
return "not found";
}
};
int main(int argc, char* argv[])
{
Something local;
string answer = local.setString("IPAddress");
cout << local.IPAddress << endl; // should return "found"
return 0;
}
请参阅此处 ,以获取有关将变量名作为字符串获取的确切问题的讨论。 简而言之- 不能 ,尽管有很多方法可以模拟它,但是它们会使您的代码难以理解,因此您应该以不同的方式进行操作。
在您的情况下,对于setString
成员函数,您可能会有类似的内容
string setString(string key)
{
if (key == "location") {
location = "found";
} elseif (key == "isLocal") {
if (key == "isLocal") {
isLocal = "found";
} elseif (key == "IPAddress") {
IPAddress = "found";
} else {
// handle unmatched case somehow (error message)
}
return "found";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.