0

我目前正在学习用 C++ 创建图形应用程序/游戏的 SDL,并且对如何在类中创建和使用 void 有一些疑问。

对于我目前的项目,我正在创建一个非常基本的乒乓球游戏,并希望创建一个类,它不仅包含有关对象位置、加载的位图和其他变量的信息,而且还包含一个涵盖 AI/运动引擎和另一个用于渲染。

我想对其进行编码,以便我可以像这样格式化我的代码:(下面的所有代码都是伪代码,只代表我想要实现的结构)

class Object
{
    private int stuff;
    private void manageStuff();
}

void Object::manageStuff()
{
    stuff++;
}

Object object = new Object();

object.stuff = 0;

for (int i = 0; i < 10, i++)
{
    object.manageStuff();
    cout << object.stuff;
}

在 C++ 中是否有任何明显的方法可以做到这一点?

4

2 回答 2

0

我认为您正在寻找构造函数和初始化器列表。您展示的示例中还有许多其他问题,我已经修复并在适当的位置发表了评论。也许:

#include <iostream>

class Object
{
// Note: access modifier written like this:
public:
    int stuff;
    void manageStuff();
    Object(); // Constructor which takes no arguments
}; // note semicolon

void Object::manageStuff()
{
    stuff++;
}

Object::Object() : stuff(0) {
  // sets stuff to 0 upon initalization.  
  // could also have written:
  // stuff=0;
  // but in this case initalization is nicer.
}

Object object; // no need for new here

// initial value of stuff set via constructor now,
// you can't just write random statements anywhere

int main() {
  for (int i = 0; i < 10; i++) // note semicolon not comma
  {
      // if these were private this would fail:
      object.manageStuff();
      std::cout << object.stuff << "\n"; 
  }
}

更像你正在寻找的东西。

于 2012-07-29T15:53:38.717 回答
0

不,如果你想使用 C++,你必须真正学习 C++。这至少涉及到学习 C++ 的语法。试图强迫它模仿另一种语言的语法是不可能的或有益的。

于 2012-07-29T15:57:06.203 回答