1

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

单独的.cpp

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

void Separate() {

cout << "text";

}

分开的.h

#include <string>
using namespace std;

class OneLine {

    Separate();

private:
    string vari;

};

主文件

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

using namespace std;

int main () {

    Separate s;
    s();

return 0;
}
4

3 回答 3

3

两个基本错误:

separate.cpp,你需要

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

并且main.cpp你想创建一个类型的对象并像这样调用它定义的方法:

OneLine ol;
ol.Separate();

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

class OneLine {

public:
    Separate();

//...
};

您还想更改一些对于这个简单示例不需要的东西,但从长远来看它们将变得必要:

  • 你想包括警卫,谷歌“包括警卫”
  • 你不想要using namespace std;- 摆脱它并std::在必要时添加
于 2013-09-30T14:38:17.483 回答
3

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

void OneLine::Separate() {
  ...

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

OneLine o;
o.Separate();
于 2013-09-30T14:38:41.783 回答
3

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

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

void Oneline::Separate()

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

所以:

Oneline one;
one.Seperate();
于 2013-09-30T14:41:49.443 回答