[英]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.