2016-10-09 2 views
-2

Team, Cette question a été posée plusieurs fois, mais les réponses ne semblent pas correspondre à ma situation. Voici mon code très simple. La ligne de code à l'origine du problème fonctionne parfaitement dans la routine principale. cependant, lorsque j'essaie d'incorporer un objet dans un objet en utilisant exactement le même code, le message d'erreur s'affiche. Je soupçonne que la cause est stupide, mais je suis trop près et ne peut pas le voir ... enter image description hereerreur: identifiant attendu avant la constante numérique Problème une fois de plus

+0

Il n'y a pas d'équipes ici. De plus, je ne vois pas de question valable ici non plus. –

+0

Veuillez mettre le code correspondant dans la question sous forme de texte. – shuttle87

+0

Vous ne pouvez pas initialiser une variable membre de cette manière. Ironiquement, depuis C++ 11, vous pouvez écrire 'A one = 100.0'. mais vous devriez vérifier votre manuel/tutoriel pour la description des classes et des constructeurs. – krzaq

Répondre

1

Au sein d'une classe, vous devez utiliser la liste-initialisation de membre pour initialiser votre variable membre A dans B:

class B{ 
public: 
    A one; //Declare one here 
    int numbluemarbles; 
    B(): one(100){} //initialize one here 
}; 

En C++ 11 ou plus récent, vous pouvez également utiliser la nouvelle syntaxe:

class B{ 
public: 
    A one = 100.0; //C++11 
    int numbluemarbles; 
}; 

Pour en savoir plus sur la façon dont vous pouvez utiliser C++ 11 options d'initialisation ont une lecture de ceci: http://www.informit.com/articles/article.aspx?p=1852519

+0

Vous faites sonner comme cette initialisation C++ 11 a été perdue dans C++ 14 (le C++ actuel.) C'est en plus de répondre à une question hors-sujet. – juanchopanza

+0

shuttle87: Réponse fantastique - merci beaucoup. Je dois avouer que j'avais été aussi loin dans mon aventure en C++ et que je n'avais jamais rencontré de listes d'initialisation de membres auparavant. J'apprécie vraiment que vous partagiez ceci avec moi - clairement j'ai plus d'apprendre à faire! –