我想创建一个调用函数的源文件,而不必创建对象

I want to create a source file that calls a function without having to create an object

本文关键字:源文件 函数 创建对象 不必 调用 一个 创建      更新时间:2023-10-16

假设我想要实现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++的书。看这里。