C++-类方法/空洞的实现
C++ - Implementation of class methods/voids
我目前正在学习用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++的语法。试图强迫它模仿另一种语言的语法是不可能的,也没有好处。
相关文章:
- 如果没有malloc,链表实现将失败
- 如何在c++中实现处理器调度模拟器
- 如何在c++中使用引用实现类似python的行为
- 实现无开销push_back的最佳方法是什么
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在BST的这个简单递归实现中消除警告
- 实现一个在集合上迭代的模板函数
- 我应该实现右值推送功能吗?我应该使用std::move吗
- 如何正确实现和访问运算符的各种自定义枚举器
- C++Union/Struct位域的实现和可移植性
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 在c++中实现LinkedList时,应出现未处理的错误
- 为左值和右值的包装器实现C++范围
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- 使用GSoap实现ONVIF
- 在用于格式4的arm模拟器中实现功能时的一个问题
- 用于AVX的ln(x)的实现,m256
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 在C++中,如何在类和函数(可能是模板化的)的头中编写完整的实现
- C++-类方法/空洞的实现