C ++单独的函数文件

时间:2013-09-30 14:35:57

标签: c++ function header iostream

我正在尝试在不同的文件中编写我的c ++程序,但我似乎无法让它工作。有人能帮助我吗?

separate.cpp

#include "separate.h"
#include <iostream>

void Separate() {

cout << "text";

}

separate.h

#include <string>
using namespace std;

class OneLine {

    Separate();

private:
    string vari;

};

的main.cpp

#include "separate.cpp"
#include <iostream>

using namespace std;

int main () {

    Separate s;
    s();

return 0;
}

3 个答案:

答案 0 :(得分:3)

两个基本错误:

separate.cpp中,您需要

void OneLine::Separate() { /*...*/ }

并在main.cpp中你想要创建一个你的类型的对象并在其上调用定义的方法,如下所示:

OneLine ol;
ol.Separate();

为此,您需要制作方法public,更改separate.h

class OneLine {

public:
    Separate();

//...
};

你想要更改一些这个简单例子不需要的东西,但从长远来看它们将是必要的:

  • 你想要包括警卫,谷歌为“包括警卫”
  • 您不希望using namespace std; - 摆脱它并在必要时添加std::

答案 1 :(得分:3)

在您的实现中,将函数定义为:

void OneLine::Separate() {
  ...

在你的主体中,你需要实例化一个OneLine对象并在其上调用Separate,即:

OneLine o;
o.Separate();

答案 2 :(得分:3)

在您的主文件中,您需要引用"separate.h"而不是"separate.cpp"

seperate.cpp中,类方法需要以类名称为前缀:

void Oneline::Separate()

此外,您应该创建OneLine类型的对象,而不是Seperate类型的对象。

所以:

Oneline one;
one.Seperate();