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

以下はあなたのために働くでしょうか?

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 に答える