gpt4 book ai didi

c++ - extern是否破坏封装

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:47 27 4
gpt4 key购买 nike

我是 C++ 的新手,我正在创建游戏。我有一个名为 main 的类,我在其中声明

Game * game; //globally
int main() {
game = new Game();
game->show();
}

我的类游戏启动我的游戏等。现在在其他类(玩家、敌人等)中,我使用游戏访问变量,例如玩家健康

#include<game.h>
extern Game * game;
func::func() {
game->health->resetHealth();
}

这是否打破了封装/ood 范式?这是不好的做法吗?问题是我可以看到任何其他为游戏做这件事的方法。

最佳答案

是的,extern 破坏了封装。封装的主要概念是数据隐藏和绑定(bind)单个实体中对象的属性和行为。将变量设置为 extern 会违反法律。
在一些更高级的OOP 语言如java 中,没有extern。在 Java 中,它总是建议将属性/字段设为私有(private)以限制其访问。

关于c++ - extern是否破坏封装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29240578/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com