如何保存数据成员的名称(不是它们的值),作为参数从函数发送。 示例代码如下。
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";
}
}
...
}
我这样做但没有得到所需的结果。 谢谢你的帮助
答案 0 :(得分:2)
应该是
if(MemeberName == "value")
{
std::cout<<"Same Member Name";
}
else
{
std::cout<<"Not same Member name";
}
答案 1 :(得分:1)
如果您想知道它是否是完全相同的对象,您可以使用存储它的地址:
#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
。