c++ - 如何布局程序?

标签 c++ layout

我正在制作一个打砖 block 的克隆体。这是我想出的程序布局:

source.cpp // few lines
     App class // has constants APP_WIDTH and APP_HEIGHT
         Ball class // has constant RADIUS
         Brick class
         Paddle class

现在我想在游戏开始时将球放在窗口的中央。通常我会这样完成它:

Ball::Ball (App &app)
{
    circle.setPos(app->WINDOW_WIDTH/2-RADIUS/2,app->WINDOW_HEIGHT/2-RADIUS/2)
}

但是球类对应用程序一无所知!

我需要制作 APP_WIDTHAPP_HEIGHT 全局变量吗?

或者我是否需要颠倒当前的应用程序布局,以便 Ball 类具有 #include "app.hpp" 语句?

编辑:或者我是否需要在应用程序类中声明球类、积木类和桨类?但是我在哪里定义它们呢?在同一个应用程序类中?然后标题变得太大了!

也许互联网上有一些关于程序布局主题的好教程?我还没有找到...

问题 2: 如果“球没有理由知道任何关于应用程序类的事情”,为什么类需要 protected 变量

最佳答案

因为问题似乎是“Ball 没有任何访问应用程序类的私有(private)成员的权限。”,所以您可能想要做一个 getter。

getter 是一种返回私有(private)字段值的公共(public)方法。

如果这样做,您可以像这样访问这些成员的值

circle.setPos(app->GetWidth()....

您的 getter 可能类似于以下内容

公共(public) int GetWidth() { 返回 this.APP_WIDTH;

关于c++ - 如何布局程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20847620/

相关文章:

c++ - 使用声明作为覆盖

c++ - 从具有不同变量类型的文件中逐行读取

c++ - Lua C API : what's the difference between lua_gettop() and -1?

c++ - 使用 HOG 描述符进行人体检测

magento - 如何从 Magento 的左侧列中删除 "my cart"?

c++ - 是否可以在 Linux 上编译 VST?

android - 如何根据屏幕高度设置 GridView 单元格的高度?

android - 如何让语言从英语变为阿拉伯语时布局对齐方式不改变 Android 开发

ios - 如何根据屏幕尺寸快速调整元素大小

variables - 如何查看 Word .doc 变量