自從我使用C++之後已經有一段時間了,所以請和我一起裸照。我怎樣才能在一個文件中正確地定義一個C++函數,並在不使用頭文件的情況下從另一個文件中調用它?我會使用頭文件,但我的教授告訴我們不要。我一直有很多編譯問題與我的文件,處理我的功能不存在。任何幫助表示讚賞。我的程序應該按升序對數組進行排序,使用選擇排序和使用冒泡排序的降序。如何用C++在一個文件中定義一個函數並在另一個文件中調用它?
這是我到目前爲止。這是我的司機。
Driver.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;
}
bubble.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;
}
}
}
};
selection.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;
}
}
}
};
好的,謝謝你這麼多。還有一個問題。 (希望)如何在我的驅動程序中使用我的氣泡排序和選擇排序函數中定義的相同數組? – ML45
這就是你現在正在做的 –
好的謝謝。所以這意味着我可以擺脫'int * array_p = values'這一行,因爲我已經指向其他兩個文件的函數了? – ML45