如何访问位于单独文件(.cpp)中的非成员函数,而不是main

时间:2014-07-30 21:27:13

标签: c++ function static static-methods

所以我正在开发我的第一个多文件,非玩具,c ++项目。我有一个代表多光谱图像的类以及随之而来的所有信息。

我的问题是如何使用磁盘中的文件设计加载该类的程序部分和该类的对象!

我认为我不需要上课。切换到功能方法会更好地用于文件加载。这样我就可以拥有一个源文件(.cpp),它具有我可以调用的函数,同时传递指向相关对象的指针,这些对象将由函数访问的文件进行更新。

我不认为静态功能是我想要使用的吗?据我所知,它们(静态函数)用于访问类中的静态变量,它们不是吗?

如果我从main()开始执行功能路线,我该如何访问这些功能?我假设我会在main()包含文件的开头包含函数.cpp文件。从那里我该如何调用这些函数。我只是使用函数名称,还是在包含类然后调用其方法时,我必须预先添加类似于预先挂起的内容。

以下是我尝试过的一些示例代码以及我得到的错误。

OpenMultiSpec.cpp

#include <iostream>

void test(){
    std::cout << "Test function accessed successfully" << std::endl;
}

的main.cpp

int main(){

    test();

    return 1;
}

错误说&#34; &#39;测试&#39;未在此范围内宣布&#34;

2 个答案:

答案 0 :(得分:0)

OpenMultiSpec.h

void test();

的main.cpp

#include "OpenMultiSpec.h"
int main(){

    test();

    return 1;
}

答案 1 :(得分:0)

如果它们位于两个单独的文件中,并且在您的情况下,一个是标题,请使用

#include "OpenMultiSpec.h"

如果您决定只使用一个文件(如上面的评论所述),您的头文件不需要#include。只需将函数声明放在任何地方,然后再调用它。

#include <iostream>
void test() {
     std::cout << "Test function accessed successfully" << std::endl;
}

int main() {

    test();

    return 1;
}