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

C++ - Implementation of class methods/voids

本文关键字:实现 空洞 类方法 C++-      更新时间:2023-10-16

我目前正在学习用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++中有什么明显的方法可以做到这一点吗?

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

#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"; 
  }
}

更像你想要的。

否。如果你想使用C++,你必须实际学习C++。这至少涉及到学习C++的语法。试图强迫它模仿另一种语言的语法是不可能的,也没有好处。