2011-01-29 3 views
0

빌드하려고하는 헤더와 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 : '선택 정렬의 여러 정의를 : : PrintOut() '
SelectionSort.cpp : 17 : 여기에서 처음 정의 됨
SelectionSort.cpp : 23 : 23 : 처음 여기에 정의 된
SelectionSort.cpp : 10 : 여러 정의 '선택 정렬 : (입력)'
'선택 정렬 : 정렬()'
가 SelectionSort.cpp가 여러 정의 SelectionSort.cpp : 10 : 여기에서 처음 정의 됨

어떻게 함수를 잘못 정의합니까?

나는 넷빈과 그 일반 make/build 설정을 사용하고 있습니다. 나는 파일을 만들기 위해 더 많은 것을 얻고 싶었습니다. 내 자신의 글을 쓰고 문제를 해결하려고 노력해야합니까?

+0

방법이 연결/컴파일? – GWW

+0

동일한 개체 파일을 두 번 연결하려고합니다 ... GWW를 추적하려면 어떻게 연결하나요? – templatetypedef

+1

메이크 파일에 오류가 있습니다. 질문에 추가하십시오. 메이크 파일을 사용하지 않는다면 어떤 IDE를 사용하고 있습니까? – Hrishi

답변

1

당신은 당신의 코드를 컴파일에 도착하면, 당신은 (주석 참조) 논리적 실수의 번호를 가지고 :

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]); 
    } 
}