让公共成员变量访问 C++ 中同一类的私有成员

Posted

技术标签:

【中文标题】让公共成员变量访问 C++ 中同一类的私有成员【英文标题】:Having public member variables access private members of the same class in C++ 【发布时间】:2019-11-16 03:36:43 【问题描述】:

我正在尝试创建一个类,其中函数更改该类的私有成员的值,但我不断收到“使用未声明的标识符”的错误。我想如果函数是类成员,那么他们可以访问私有成员?

我的代码供参考

建筑.h

#ifndef BUILDING_H
#define BUILDING_H
#include "Point2D.h"
#include "GameObject.h"

class Building : public GameObject


private:
    unsigned int pokemon_count;

Building();
Building(char,int, Point2D);

public:
    void AddOnePokemon();
    void RemoveOnePokemon();
    void ShowStatus();
    bool ShouldBeVisible();

;

#endif

建筑.cpp

#include "Building.h"
#include "GameObject.h"
#include <iostream>
using namespace std;

Building::Building()

    display_code = 'B';
    location;
    id_num = ' ';
    state = '0';
    pokemon_count = 0;
    cout << "Building default constructed";


Building::Building(char in_code,int in_id, Point2D in_loc)

    id_num = in_id;
    location = in_loc;
    display_code = in_code;
    state = '0';
    cout << "Building constructed";


void AddOnePokemon()

    pokemon_count = pokemon_count+1;


void ReturnOnePokemon()

    pokemon_count = pokemon_count-1;


void ShowStatus()

    cout << "\"(" << pokemon_count << "pokemon is/are in this building";

【问题讨论】:

【参考方案1】:

您的函数超出了您的课程范围。

在函数前面添加类名,这应该可以工作:

void Building::AddOnePokemon()

【讨论】:

以上是关于让公共成员变量访问 C++ 中同一类的私有成员的主要内容,如果未能解决你的问题,请参考以下文章

Java子类访问父类的私有成员变量

C++ 使用变量访问类的公共成员

C++ - 如何从同一个类的静态函数访问一个类的私有成员?

在 Cython 中访问 C++ 类的私有成员变量/函数

包和访问权限2

Swift 中的友元类(访问内部类的私有成员)