2011-03-26 1 views
0

J'ai été utilisé quelque chose comme ça en C# ou dans d'autres langues.Le membre de données statiques at-il tapé son type de conteneur possible en 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); 
} 

Existe-t-il un équivalent en C++? Ou tout moyen recommandé de le faire? Je fais cela juste pour organiser , a2, a3 dans son nom de classe.

Répondre

4

Existe-t-il un équivalent en C++?

Le code C++ suivant est équivalent à votre code 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); 
+1

restriction Bon sang de ne permettre const Intégrales statique à définir dans la classe/struct. :) – Xeo

+0

La définition ne contient pas le qualificateur 'static'. –

+0

@Konrad: Correct.Il était copier coller. Edité! – Nawaz

Questions connexes