C ++ - 类方法/空洞的实现

时间:2012-07-29 15:48:15

标签: c++ class methods void

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

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

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

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 ++中有没有明显的方法呢?

2 个答案:

答案 0 :(得分: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"; 
  }
}

更像你在寻找的东西。

答案 1 :(得分:0)

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