从其他文件调用C ++主类

时间:2012-10-11 00:11:44

标签: c++

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

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分:3)

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

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