无法访问在类 'Soldier' 中声明的私有成员
cannot access private member declared in class 'Soldier'
我是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:usersuserdocumentsvisual studio 2012projectsconsoleapplication6consoleapplication6consoleapplication6.cpp(11): error C2248: 'Soldier::Soldier' : cannot access private member declared in class 'Soldier'
1> c:usersuserdocumentsvisual studio 2012projectsconsoleapplication6consoleapplication6soldier.h(7) : see declaration of 'Soldier::Soldier'
1> c:usersuserdocumentsvisual studio 2012projectsconsoleapplication6consoleapplication6soldier.h(6) : see declaration of 'Soldier'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
您的构造函数是private
(正如错误消息所说)。默认情况下,如果未指定访问级别,则Class
的每个成员都是private
。
您定义的构造函数的访问级别为
private
默认情况下,如果没有提及任何内容,则访问级别为私有级别因此,将其更改为公共访问。
除非您将访问级别更改为public
或protected
,否则类的成员是隐式private
,因此Soldier::Soldier(int SetHealth, int SetStrength);
是私有的,因此您无法访问它。
将构造函数声明更改为此public Soldier(int SetHealth, int SetStrength);
人们现在已经回答了这个问题,但明确地说:
class Soldier
{
private:
int health;
int strength;
public:
Soldier(int SetHealth, int SetStrength);
void attacked();
void healed();
int getHealth();
int getStrength();
};
BTW附身和痊愈后要做什么?它们不接受任何参数,也不返回任何内容。古怪的
将构造函数向公众移动";"部分";,使其成为CCD_ 9。事情一开始是private
,除非你另有说明。
相关文章:
- 在指向现有内存地址的 hpp 文件中声明成员函数的最佳方法
- 如何使用模板声明成员函数?(不是模板类)
- 如何使用 Boost.Hana 声明成员变量
- 声明成员对象而不调用其默认构造函数
- 使用函数类型语法声明成员函数
- 尝试访问标头声明成员时出现隔离错误
- 根据二手构造函数声明成员
- C 模板明确声明成员函数值/避免了宏的问题
- 如何在基本模板类中声明成员,其中类型取决于派生类的类型
- 错误:类中没有声明成员函数
- 我可以使用相同的名称为周围作用域中的类型声明成员类型别名吗
- 从variadic模板参数声明成员变量
- 在类(C )中使用模板时未声明成员函数
- 错误:类中未声明 '' 成员函数
- 如何在指向常量地址时声明成员函数常量指针
- 何时以及为什么在堆C++上声明成员变量
- C++ 错误:未在范围内声明;成员函数
- 在不声明成员变量的情况下更改按钮颜色
- 错误 C2535:已定义或声明成员函数
- 当声明成员函数时,*New()是什么意思