C++: Initialisation des variables de membre

J'ai une confusion sur l'initialisation d'une variable membre de la classe.

Suppose que, dans mon .h fichier est:

class Test {

int int_var_1;
float float_var_2;

public:
       Test();
}

Mon .rpc serait:

Test::Test() : int_var_1(100), float_var_2(1.5f) {}

Maintenant, quand j'instancie une classe les variables sont initialisées à 100 et 1.5.

Mais si c'est tout ce que je fais dans mon constructeur, je peux faire la suite dans mon .rpc:

int Test::int_var_1 = 100;
float Test::float_var_2 = 1.5f;

Je suis confus quant à la différence entre l'initialisation des variables dans les constructeurs ou avec l'opérateur de résolution.

N'cette façon de l'initialisation des variables en dehors de constructeur de résolution de portée s'appliquent uniquement aux variables statiques ou est-il une façon dont il peut être fait pour les variables normales?

La deuxième méthode ne fonctionne pas car il n'y a pas d'instance et ce sont les variables d'instance - ils besoin d'une instance. En comparant le C++11 dans la classe d'initialisation (class C {int i = 5;}), cela fait juste remplit 5 dans le cas où une initialisation aurait pu avoir lieu. Il ne fait pas les initialiser toute version antérieure.

OriginalL'auteur madu | 2012-08-29