2011-01-29 99 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:首先在这里定义,

我如何定义我的函数不正确?

我正在使用netbeans及其通用make/build设置。我一直想要更多地了解make文件,我是否应该尝试编写自己的文件并解决问题?

+0

你是如何编译/链接呢? – GWW 2011-01-29 01:32:41

回答

1

一旦你的代码编译,你有一些逻辑错误(见注释):