Ошибки определения нескольких функций - PullRequest
0 голосов
/ 29 января 2011

У меня есть заголовок и файл cpp, который я пытался создать.

.cpp файл:

#include "SelectionSort.h"  
void SelectionSort::Fill(){  
    Buffer = new char[Size];  
    for(int i=0;i<Size;i++){  
        Buffer[i] = rand() % 10;  
    }  
}  
void SelectionSort::PrintOut(){  
    for(int i=0;i<Size;i++){  
        cout<<Buffer[i]<<endl;  
    }  
}  
void SelectionSort::Sort(){  
    int lowest;  
    for(int i=0;i<Size;i++){  
        lowest=i;  
        for(int j=i;j<(Size-i);++j)  
            if(Buffer[j]>lowest) lowest = j;  
        swap(Buffer[lowest], Buffer[i]);  
    }    
}

.h файл:

#ifndef SELECTIONSORT_H  
#define SELECTIONSORT_H  
#include <algorithm>  
#include <stdlib.h>  
#include <iostream>  
using namespace std;  
class SelectionSort {  
public:  
    SelectionSort();  
    SelectionSort(int S){Size= S;}  
    void Fill();  
    void PrintOut();  
    void Sort();  
private:  
    int Size;  
    char * Buffer;  
};  
#endif  /* SELECTIONSORT_H */

Но я получаю эти ошибки:

SelectionSort.cpp: 17: множественное определение «SelectionSort :: PrintOut ()»
SelectionSort.cpp: 17: здесь впервые определено
SelectionSort.cpp: 23: множественное определение «SelectionSort :: Sort ()»
SelectionSort.cpp: 23: здесь впервые определено
SelectionSort.cpp: 10: множественное определение «SelectionSort :: Fill ()»
SelectionSort.cpp: 10: сначала определено здесь,

Как я неправильно определяю свои функции?

Я использую netbeans и их общие настройки make / build. Я хотел больше узнать о файлах make. Должен ли я написать свой собственный и решить проблему?

1 Ответ

1 голос
/ 29 января 2011

Как только вы получите свой код для компиляции, у вас будет несколько логических ошибок (см. Комментарии):

void SelectionSort::Sort()
{       
     int lowest;       
     for(int i = 0; i < Size; i++)
     {           
         lowest = i;
         for(int j = i; j < (Size - i); ++j)    // j should terminate at the end of Buffer, not one before the end
             if(Buffer[j] > lowest) lowest = j; // comparing a data element to an index, comparison operator reversed
         swap(Buffer[lowest], Buffer[i]);
     }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...