我是OOP的新手,我不明白如何将参数传递给类。
班级声明:
class Soldier
{
Soldier(int SetHealth, int SetStrength);
private:
int health;
int strength;
public:
void attacked();
void healed();
int getHealth();
int getStrength();
};
构造函数的定义:
Soldier::Soldier(int SetHealth, int SetStrength):
health(SetHealth),
strength(SetStrength)
{
}
当我尝试将参数传递给类时,它会说:
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 ==========
答案 0 :(得分:3)
您的构造函数是private
(正如错误消息所示)。
默认情况下,如果您未指定访问级别,则Class
的每个成员都为private
。
答案 1 :(得分:2)
您定义的构造函数的访问级别为
private
默认情况下,如果没有提及任何内容,则访问级别为私有 因此,将其更改为公开以进行访问。
答案 2 :(得分:1)
班级成员隐含private
,除非您将访问级别更改为public
或protected
,因此Soldier::Soldier(int SetHealth, int SetStrength);
是私有的 - 因此您无法访问它。< / p>
答案 3 :(得分:0)
将构造函数声明更改为此public Soldier(int SetHealth, int SetStrength);
答案 4 :(得分:-2)
人们现在已经回答了这个问题,但是明确地说:
class Soldier
{
private:
int health;
int strength;
public:
Soldier(int SetHealth, int SetStrength);
void attacked();
void healed();
int getHealth();
int getStrength();
};
BTW什么附着和治愈了怎么办?他们没有参数,也没有返回。奇
编辑(根据最近的投票结果):
将构造函数移动到公共“section”,使其成为public
。事情开始于private
,直到你说不出来。