【发布时间】:2014-07-30 21:27:12
【问题描述】:
所以我正在处理我的第一个多文件、非玩具、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;
}
错误说“'test'没有在这个范围内声明”
【问题讨论】:
-
因此,在 Eclipse 中,似乎我不必在具有 main() 的文件中“包含”function() .cpp 文件,但是,我如何访问这些函数?跨度>
-
通常,您将它们的声明放在头文件中,并将其包含在需要调用函数的代码中。
-
但这不是一门课吗?然后我必须实例化对象才能使用这些功能!
-
您可以在头文件中声明一个非类函数,然后在 cpp 文件中实现。某物是否属于类的方面与您将其放在头文件或代码文件中的位置无关。
-
如果您将函数或变量定义为全局的,那么您可以在 .cpp 文件中的任何位置访问这些函数,而无需引用任何类。现在,如果您想从另一个 .cpp 文件访问这些全局函数,那么您必须为包含全局函数的 .cpp 文件创建头文件。然后将头文件添加到您尝试调用这些全局函数的 .cpp 文件中。因为编译器会在你的main中查找这些全局函数的定义,如果找不到,就会在头文件中查找。
标签: c++ function static static-methods