2011-01-29 13 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:複数の定義 '選択ソート::ソート()'
SelectionSort.cpp:23:10:最初にここ
SelectionSort.cppを定義し、複数の定義を '選択ソート::フィル()'
SelectionSort.cpp:10:ここで最初に定義された

どのように機能を正しく定義しませんか?

私はnetbeansと一般的なmake/build設定を使用しています。私は自分のファイルを作成して問題を解決しようとすると、ファイルを作るためにもっと多くを得ることを意味してきましたか?

+0

がどのようにこれをリンク/コンパイルしていますか? – GWW

+0

同じオブジェクトファイルを2回リンクしようとしているようです... GWWをフォローアップするにはどうすればいいですか? – templatetypedef

+1

メークファイルにエラーがあります。質問に追加してください。あなたがメークファイルを使用していない場合は、どのIDEを使用していますか? – Hrishi

答えて

1

あなたのコードをコンパイルするために取得したら、あなたは(コメントを参照)は、論理ミスの数を持っている: