c++ - 无法访问类 'Soldier' 中声明的私有(private)成员

标签 c++ class oop constructor private

我是 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 ==========

最佳答案

您的构造函数是 private(正如错误消息所说)。 默认情况下,如果您未指定访问级别,则 Class 的每个成员都是 private

关于c++ - 无法访问类 'Soldier' 中声明的私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17720279/

相关文章:

c++ - 编译时间间隔检查器

c++ - 隐式类型转换的临时工的生命周期

java - Tomcat - Java 类未包含在我的 jsp 页面中

class - 为什么可以修改 Raku 类的只读数组属性?

c++ - C++中的结构和类有什么区别?

c++ - constexpr 函数不在编译时计算值

python - 什么是实现多个构造函数的干净 "pythonic"方式?

javascript - 如何在该类中的函数内的类中设置 this.var?

c# - 非赋值类的调用方法

c++ - 以编程方式禁用 firefox 扩展