我正在制作一个打砖 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_WIDTH
和 APP_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/