呼叫C++;其他文件中的主类 好的,所以我在C++中制作了一个文本冒险游戏,我对它很陌生。我对java和其他一些语言很有经验。但我有个问题。我试图将一个类从主文件调用到另一个文件中,但出现了一个错误。即使在头文件或.cpp文件中包含main.cpp,我也会得到它。我已经知道将.cpp调用到另一个文件中是一种不好的做法,但是由于main没有头文件,所以我不能准确地包含它

呼叫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

C++不是Java。将类声明从
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();
}