ne peut pas accéder privé membre déclarée dans la classe "Soldat"
Je suis nouveau à la POO et je ne comprends pas comment passer des arguments à des classes.
La classe de déclaration
class Soldier
{
Soldier(int SetHealth, int SetStrength);
private:
int health;
int strength;
public:
void attacked();
void healed();
int getHealth();
int getStrength();
};
Définition du constructeur:
Soldier::Soldier(int SetHealth, int SetStrength):
health(SetHealth),
strength(SetStrength)
{
}
Quand j'ai essayer de passer des arguments à la classe, il dit ceci:
1>------ Build started: Project: ConsoleApplication6, Configuration: Debug Win32 ------
1> ConsoleApplication6.cpp
1>c:\users\user\documents\visual studio 2012\projects\consoleapplication6\consoleapplication6\consoleapplication6.cpp(11): error C2248: 'Soldier::Soldier' : cannot access private member declared in class 'Soldier'
1> c:\users\user\documents\visual studio 2012\projects\consoleapplication6\consoleapplication6\soldier.h(7) : see declaration of 'Soldier::Soldier'
1> c:\users\user\documents\visual studio 2012\projects\consoleapplication6\consoleapplication6\soldier.h(6) : see declaration of 'Soldier'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Vous devez vous connecter pour publier un commentaire.
Personnes ont déjà répondu à cela maintenant, mais explicite:
BTW Ce sont attachés et guéri va faire? Ils ne prennent pas de paramètres et renvoie rien. Impair.
Modifier (à la lumière de la récente baisse de vote):
Déplaçant le constructeur pour le public "section", il
public
. Choses à démarrer en tant queprivate
jusqu'à ce que vous diront le contraire.health
en interne.Votre constructeur est
private
(tout comme le message d'erreur dit).Par défaut, chaque membre d'un
Class
estprivate
si vous ne spécifiez pas un niveau d'accès.Le constructeur que vous avez défini a un niveau d'accès de
Par défaut si on ne fait pas mention de quoi que ce soit, le niveau d'accès est privé
Afin de changer de public.
Les membres d'une classe sont implicitement
private
à moins de modifier le niveau d'accès àpublic
ouprotected
, doncSoldier::Soldier(int SetHealth, int SetStrength);
est privé - ergo vous ne pouvez pas y accéder.changet constructeur déclaration à cet
public Soldier(int SetHealth, int SetStrength);