Возвращение массива из функции

Рейтинг: 0Ответов: 1Опубликовано: 23.04.2015

Нужно разработать библиотеку Dll для слияния двух массивов в 1 отсортированный массив, хочу узнать, как мне вернуть этот массив. Листинг моей функции которая возвращает массив:

ArrayFuncsDll.h

 namespace ArrayFuncs{
 class MyArrayFuncs{
 public:
 static _declspec(dllexport) int* SortArray(int *firstArray, int *secondArray, int firstArraySize, int secondArraySize){
    //return newArray;
}
};
}

ArrayFuncsDll.cpp

#include "ArrayFuncsDll.h"

namespace ArrayFuncs{
int* MyArrayFuncs::SortArray(int *firstArray, int *secondArray, int firstArraySize, int secondArraySize){
    int newArraySize = firstArraySize + secondArraySize;
    int *newArray = new int[newArraySize];
    for ( int i = 0; i < newArraySize; i++){
        if(i < firstArraySize)
            newArray[i] = firstArray[i];
        newArray[i] = secondArray[i - firstArraySize];
    }
    int temp;
    for (int i = 0; i < newArraySize - 1; i++)
        for (int j = 0; j < newArraySize - i - 1; j++)
            if (newArray[j + 1] < newArray[j])
            {
                temp = newArray[j];
                newArray[j] = newArray[j + 1];
                newArray[j + 1] = temp;
            }
    return newArray;
}
}

Компилятор выдает ошибку: Error 1 error C2084: function 'int *ArrayFuncs::MyArrayFuncs::SortArray(int *,int *,int,int)' already has a body d:\4 сем\лабараторные работы\ооп\уср\arraydll\arraydll\arrayfuncsdll.cpp 5

Ответы

▲ 1

Компилятор вам говорит что тело функции уже определено, уберите пустое тело, вот так:

namespace ArrayFuncs {
    class MyArrayFuncs {
        public:
        static _declspec(dllexport) int* SortArray(
            int *firstArray, 
            int *secondArray, 
            int firstArraySize, 
            int secondArraySize);
    };
}

всё должно работать.