恭喜冒险尝试学习C++,因为你获得的经验,它会打开你的心思考一种全新的方式。
对于C++初学者有几个提示,可以帮助你在你的方式。 C++是一种面向对象的语言。普遍同意适用于所有面向对象语言的原则和最佳实践。对于你的例子来说,这可能看起来没有必要,但是随着你的项目规模,范围和复杂性的增长,特别是如果你想创造一个真实的游戏,某些实践和思维方式是必须的。
你的问题涉及的面向对象的软件设计的核心原则之一。
在C++中存在struct
和class
关键字用于封装到对象中。它通常是一个很好的实践组相关行为和相关数据到合理尺寸的类或源代码的结构。
C++程序员通常将放置对象定义在.HPP或.H头文件。这是您定义对象结构的位置,并声明变量和函数成员。然后在你使用物体的地方,在你的情况下,你的main()
函数,你将包括你的对象的定义与 #include "YourClass.hpp"
。
其他文件扩展名,你会经常看到的是的.cpp这是对象实施生活。为了实现你的对象的行为,你需要告诉编译器在.cpp文件的顶部包含#include "YourClass.hpp"
的对象头部。
这种做法称为从实施分离的定义。你会发现这个过程提高了可读性,同时也提高了编译速度,因为这就是设计语言的使用方式。
摘要:
定义在定义头文件.HPP
实现在实施文件你的对象行为的.cpp你的对象
粗体:
下面是类或结构的粗略框架。
// -- your 'MyClass.hpp' file
class MyClass
{
private:
// private member variables go here (invisible from outside)
float bar;
int foo;
public:
// these are your public member functions
// the first two functions are the constructor and destructor
// they get called when the object is created and destroyed
// respectively
MyClass();
~MyClass();
// other member functions go here
int fooFunction(float someArg);
// ...etc
private:
// private member functions go here
void someOtherFunction();
// ...etc
}
然后你的.cpp实现文件看起来是这样的。
// -- your 'MyClass.cpp' file --
#include "MyClass.hpp"
// constructor function implementation
MyClass::MyClass()
{
// put code that happens when the object is created
foo = 12.0f;
std::cout << "Object 'MyClass' created!" << std::endl;
}
// destructor function implementation
MyClass::~MyClass()
{
// put code that happens when the object is destroyed
std::cout << "Object 'MyClass' destroyed!" << std::endl;
}
int MyClass::fooFunction(float someArg)
{
foo = someArg;
}
void MyClass::someOtherFunction()
{
// do something
}
我知道你刚开始学习C++,但我对你的建议是首先拿起几个不错的入门书籍上C++。我真的很喜欢C++ Primer 5th Edition。然后你应该熟悉一般的OPP编码实践。
如果您觉得在模式感到舒服,并认真对待游戏开发,请看看Game Engine Architecture, 2nd和[游戏编码完成,第4] [3]。
通过系统地学习编程和C++,它将为您节省大量时间和头痛。互联网充满了像你这样的人的许多伟大的资源。祝你好运!
你需要一个.h文件,它包含'struct monster'定义,'#include'这两个'.cpp'文件的头文件。 – zneak
和一个'extern struct monster starfish;'在数据库头部,让主看到'海星'。但是我可以提供'std :: map怪物;'作为替代一站式商店来满足你所有的怪物需求?用法是'怪物[“海星”]'得到海星或'怪物[“Otyugh”]'得到一个Otyugh。在这种情况下,你需要传递的是“怪物”,而不是单个怪物的群体。 –
user4581301
@zneak我做了一个头文件,其中包含类“myheader.h”,然后我把'#include“myheader.h”'放在主文件和数据库文件中。如何调用数据库值以在主函数中使用它们? –