Возможно ли, чтобы член статических данных типизировал свой тип контейнера в C ++? - PullRequest
0 голосов
/ 26 марта 2011

Я использовал нечто подобное в C # или других языках.

// C#, but I can't remember correctly. Just assume like a pseudo code.
class A
{
    public int b;
    public A(int newB)
    {
        b = newB
    }
    public static const A a1 = A(1);
    public static const A a2 = A(2);
    public static const A a3 = A(3);
}

Есть ли эквивалент этого в C ++?Или какой-нибудь рекомендуемый способ сделать это?Я делаю это для того, чтобы просто организовать a1, a2, a3 в пределах имени класса.

1 Ответ

4 голосов
/ 26 марта 2011

Есть ли эквивалент в C ++?

Следующий код C ++ эквивалентен вашему коду C #:

class A
{
    public:
    int b;
    A(int newB) : b(newB)
    {
    }

    //declaration
    static const A a1;
    static const A a2;
    static const A a3;
};

//definition - necessary!
const A A::a1 = A(1);
const A A::a2 = A(2);
const A A::a3 = A(3);
...