我目前正在学习使用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 ++中有没有明显的方法呢?
答案 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 ++的语法。试图强迫它模仿另一种语言的语法是不可能的或有益的。