gpt4 book ai didi

c++ - 如何在一个文件中用 C++ 定义一个函数并在另一个文件中调用它?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:23:38 25 4
gpt4 key购买 nike

如何在一个文件中正确定义 C++ 函数并在不使用头文件的情况下从另一个文件中调用它?我会使用头文件,但我的教授告诉我们不要这样做。我的文件一直有很多编译问题,处理我不存在的功能。任何帮助表示赞赏。我的程序应该使用选择排序按升序对数组进行排序,使用冒泡排序按降序对数组进行排序。

这是我目前所拥有的。这是我的司机。

驱动.cpp

#include "selection.cpp"
#include "bubble.cpp"

#define ArraySize 10 //size of the array
#define Seed 1 //seed used to generate random number
int values[ArraySize];

int main(int argc, char** argv) {

int i;



//seed random number generator
srand(Seed);

//Fill array with random integers
for(i=0;i<ArraySize;i++)
values[i] = rand();

cout << "\n Numbers in array." << endl;

for(i=0;i<ArraySize; i++)
cout << &values[i]<< "\n";

int* array_p[] = values[];

//Function call for BubbleSort
bubblesort(array_p[], ArraySize);

for (i=0;i<ArraySize; i++)
cout << &values[i] << "\n";


//SelectionSort
selectionsort(array_p, ArraySize);

cout << "Numbers in ascending order." << endl;

for (i=0;i<ArraySize; i++)
cout << &values[i] << "\n";
return 0;
}

气泡.cpp

#include <iostream>


int* bubblesort(int values[], int size) {

int i, j;

for(i=0;i<size-1;i++){
for(j=0; j<size-1; j++){
if(values[j+1] > values[j]){
int temp = values[j];
values[j] = values[j+1];
values[j+1] = temp;

return values;

}
}
}
};

选择.cpp

#include <iostream>



int *selectionsort(int values[], int size){


for(int i=0; i<size-1; i++){
for(int j=0; j<size; j++){
if(values[i] < values[j]){
int temp = values[i];
values[i] = values[j];
values[j] = temp;


return values;
}
}

}
};

最佳答案

随便写

int* bubblesort(int values[], int size);

在您要调用该函数的其他源文件中(在调用它之前)。

请注意,如果您没有使用头文件,那么您必须手动注意,如果您更改了一个文件中的返回类型或参数列表,您会在所有文件中进行相同的更改。

其他一些事情:

您可能需要考虑将返回语句移动到函数的末尾,而不是在您进行第一次交换时立即返回。或者更好,让函数返回 void - 调用者已经知道值,因为他刚刚调用了该函数,所以它没有实现任何返回值。

cout << &values[i]<< "\n";输出每个值的地址,我猜您想改为输出值。

int* array_p[] = values[];它后面的行是语法错误,我想你的意思是:int *array_p = values; bubblesort(array_p, ArraySize);

关于c++ - 如何在一个文件中用 C++ 定义一个函数并在另一个文件中调用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22368764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com