0

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

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 个要重命名的类。不是很方便

4

3 回答 3

0

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

于 2013-04-25T07:40:31.640 回答
0

以下内容对您有用吗?

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("%d\n",objA.a);

   objA.ref_a = 10;
   printf("%d\n",objA.a);

    return 0;
}
于 2013-04-25T08:52:10.367 回答
0

这不能在客户端代码中完成。如果您想按名称表示不同的值,方法是使用 std::map 将名称映射到值。

于 2013-04-25T08:17:26.607 回答