我想创建一个调用函数的源文件,而不必创建对象
I want to create a source file that calls a function without having to create an object
假设我想要实现mergesort的mergesort.cpp。所以在我的.cpp文件中,我有这样的东西:
int * mergesort(int * a, int lo, int hi)
{
//mergesort
}
在标题mergesort.h中,我会有:
public static int mergesort(int *, int, int);
然后在另一个源文件中,比如我包含mergesort.h的main.cpp,我想调用函数mergesort,而不必创建任何对象实例。
int a [10];
mergesort::mergesort(a,0,9);
好吧,但这不起作用,因为我不知道正确的语法,也不知道该用什么术语来提问,但希望它很清楚。
我认为您是在用Java思考,而不是用C++。在您想要的标题中,简单地:
extern int *mergesort(int *, int int);
在你的main.cpp中,你可以简单地称之为:
mergesort(a, 0, 9);
在这个实例中甚至不需要静态修饰符。
//mergesort.h
#ifndef MERGESORT_H
#define MERGESORT_H
int* mergesort(int*, int, int);
#endif
而且。。。
//mergesort.cpp
#include "mergesort.h"
int* mergesort(int * a, int lo, int hi)
{
// do your thing
}
稍后:
// some other file
#include "mergesort.h"
int main()
{
int a [10];
mergesort(a,0,9);
return 0;
}
只需放入
int mergesort(int *, int, int);
在标题中,然后调用
mergesort(a,0,9);
从你的main.cpp
,你会没事的。
我假设您来自一个真正的面向对象的语言(如Java)背景,在那里一切都需要是一个对象。在C++中,一个独立的函数是非常好的。也不需要公共关键字和静态关键字,因为它们属于类。
我强烈建议你读一本C或C++的书。看这里。
相关文章:
- 使用多个源文件时对类成员函数的未定义引用
- C++,是否有可能/如何定义在.h和.cpp源文件中调用函数的类构造函数
- 如何在源文件中定义模板函数
- "<某些系统标头>:错误:"<在此处插入函数>"在移动源文件后不是"std"的成员
- 获取对源文件中特定函数的所有调用并生成其他文件(使用 C、C++预处理器或脚本)
- 创建 Matlab MEX 函数时,我是否将 mexFunction 放在 c++ 头文件或源文件中
- 函数跨多个C 源文件
- C++编译器在一个源文件中的一个函数调用中引发错误,但在具有相同函数调用的另一个源文件中不会引发错误
- 如何创建用于多个源文件的全局变量/包含/函数
- 将函数放在标题与C 源文件中的位置
- 如何在头文件和源文件中组织模板函数和函数
- 从C源文件调用C++源文件中定义的全局函数
- 如何在源文件中实现嵌套类构造函数
- C++ 将函数放在单独的源文件中
- C++单独编译,不同源文件使用相同函数
- 编译一个源文件,其中包含在标头中声明的函数
- 在C++程序或静态类中具有函数的C源文件
- 别名不同源文件中的函数
- 使用全局变量作为在其他源文件中分配的函数的参数
- 头文件与源文件中的extern函数