呼叫C++;其他文件中的主类 好的,所以我在C++中制作了一个文本冒险游戏,我对它很陌生。我对java和其他一些语言很有经验。但我有个问题。我试图将一个类从主文件调用到另一个文件中,但出现了一个错误。即使在头文件或.cpp文件中包含main.cpp,我也会得到它。我已经知道将.cpp调用到另一个文件中是一种不好的做法,但是由于main没有头文件,所以我不能准确地包含它
C++不是Java。将类声明从呼叫C++;其他文件中的主类 好的,所以我在C++中制作了一个文本冒险游戏,我对它很陌生。我对java和其他一些语言很有经验。但我有个问题。我试图将一个类从主文件调用到另一个文件中,但出现了一个错误。即使在头文件或.cpp文件中包含main.cpp,我也会得到它。我已经知道将.cpp调用到另一个文件中是一种不好的做法,但是由于main没有头文件,所以我不能准确地包含它,c++,C++,C++不是Java。将类声明从main.cpp移动到头文件中,并将定义放在另一个.cpp文件中 然后将头文件包括在使用该类的任何文件中(包括main.cpp)。第一条规则;发布你的代码。代码本身是一个比您的描述更好的调试工具。无论如何 即使在头文件或.cpp文件中包含main.cpp,我也会得到它 这是倒退。在使用类定义的文件中包含包含类定义的头文件,而不是相反。所以 // foo.h #ifndef FOO_H #define FOO_H #include <string> c
main.cpp
移动到头文件中,并将定义放在另一个.cpp文件中
然后将头文件包括在使用该类的任何文件中(包括
main.cpp
)。第一条规则;发布你的代码。代码本身是一个比您的描述更好的调试工具。无论如何
即使在头文件或.cpp文件中包含main.cpp,我也会得到它
这是倒退。在使用类定义的文件中包含包含类定义的头文件,而不是相反。所以
// foo.h
#ifndef FOO_H
#define FOO_H
#include <string>
class foo {
public:
foo(const std::string& s);
void print_whatever() const;
private:
std::string _whatever;
};
#endif
//foo.h
#伊夫德夫·福安
#定义FOO_H
#包括
福班{
公众:
foo(const std::string&s);
无效打印_anywhere()常量;
私人:
std::string _任意;
};
#恩迪夫
//foo.cpp
#包括
#包括
foo::foo(const std::string&s)
:_(s){}
void foo::print_whatever()常量{
噢!我现在明白了!谢谢,这很有意义。是的,这有点让人困惑,因为在Java中类就是文件本身。好吧,酷。但是头文件中可以有多个类,对吗?就像我可以在同一头文件中有类播放器和类坏蛋一样?
//foo.cpp
#include <foo.h>
#include <iostream>
foo::foo(const std::string& s)
: _whatever(s) { }
void foo::print_whatever() const {
std::cout << _whatever;
}
//main.cpp
#include <foo.h>
int main() {
foo f("hola");
f.print_whatever();
}