[英]how to compare name of data member of class not their value
如何将数据成员的名称(不是它们的值)作为campare,从函数中作为参数发送。 示例代码如下。
class Example
{
private:
std::string value;
public:
void Set(const std:: string& MemberName)
{
if(MemeberName == value)
{
std::cout<<"Same Member Name";
}
else
{
std::cout<<"Not same Member name";
}
}
...
}
我这样做但没有得到所需的结果。 谢谢你的帮助
它应该是
if(MemeberName == "value")
{
std::cout<<"Same Member Name";
}
else
{
std::cout<<"Not same Member name";
}
如果您想知道它是否是完全相同的对象,您可以使用存储它的地址:
#include <iostream>
using namespace std;
std::string g;
void foo(const std::string& arg)
{
if (&arg == &g) // compares addresses
std::cout << "same object" << std::endl;
if (arg == g) // compares values
std::cout << "same value" << std::endl;
}
int main() {
g = "abc";
foo(g);
return 0;
}
请注意,当您通过引用传递时,实际上您正在使用相同的对象(没有创建副本),因此当您使用&
运算符时,您可以检索原始对象的地址。 此示例打印same object
和same value
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.