2

好吧,我用 C++ 制作了一个文本冒险游戏,我对它很陌生。我在java和其他一些语言方面经验丰富。但我有一个问题。我正在尝试将主文件中的类调用到我的另一个文件中,但出现错误。即使我在头文件或 .cpp 文件中包含 main.cpp,我也会得到它。我已经知道将 .cpp 调用到另一个文件中是不好的做法,但是由于 main 没有头文件,我不能完全包含它。

4

2 回答 2

4

第一条规则;发布您的代码。代码本身是比您的描述更好的调试工具。无论如何...

即使我在头文件或 .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.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();
}
于 2012-10-11T00:18:25.677 回答
3

C++ 不是 Java。将您的类声明移动main.cpp到头文件中,并将定义放在另一个 .cpp 文件中。

然后将头文件包含在使用该类的任何文件中(包括main.cpp)。

于 2012-10-11T00:17:25.280 回答