c++重命名类成员有什么想法吗?

C++ rename class member any ideas?

本文关键字:什么 重命名 成员 c++      更新时间:2023-10-16

这就是我的问题。假设我们有一个可以完成所有工作的类,但当我使用它时,我想要有不同的名称。下面是我的意思的例子:

class A
{
public:
    int m_Value;
    A();
    ~A();
    void Func1();
    void Func2();
    // ... so on
};

现在创建一个该类的对象并使用它。

void main()
{
    A obj1;
    A obj2;
    obj1.m_NewName1 = 5; // obj1.m_Value has to be changed to obj1.m_NewName1
    obj2.m_NewName2 = 1; //
}

这能做到吗?

我可以这样做:

class C : public A
{
public:
    int &newName1;
    C() : newName1 (A::m_Value)
    {
    }
    //Add some copy consructor and assignment operator
};

现在考虑重命名100个类。不太方便

不能更改类中定义的变量名!!

在客户端代码中不能这样做。如果您希望通过名称来表示不同的值,那么可以使用std::map将名称映射到值。

下面的操作对你有用吗?

class A
{
public:
    int a;
    int& ref_a;
    A(int i): a(i),ref_a(a)
    {`enter code here`
    }
    A(): ref_a(a)
    {
    }
};
int main()
{
    A objA(100);
    printf("%dn",objA.a);
   objA.ref_a = 10;
   printf("%dn",objA.a);
    return 0;
}