2017-02-01 13 views
0

ボードクラス内に列クラスを持つconnect 4ゲームを作成して、構成を学習しています。私は、これらのオーバーロードのエラーを把握しようと永遠に費やしている:ここで関数をオーバーロードすることはできませんエラーC++

g++ -g -c C4Board.cpp -o C4Board.o 
C4Board.cpp:11:1: error: ‘C4Board::C4Board()’ cannot be overloaded 
C4Board(){ 
^ 
In file included from C4Board.cpp:9:0: 
C4Board.h:7:5: error: with ‘C4Board::C4Board()’ 
    C4Board(); 
    ^
C4Board.cpp:20:1: error: ‘C4Board::~C4Board()’ cannot be overloaded 
~C4Board(){} 
^ 
In file included from C4Board.cpp:9:0: 
C4Board.h:9:5: error: with ‘C4Board::~C4Board()’ 
    ~C4Board(); 
    ^
C4Board.cpp:20:12: error: expected ‘}’ at end of input 
~C4Board(){} 
      ^

は私のコンストラクタです:

#include <iostream> 
using namespace std; 

#include "C4Col.h" 
#include "C4Board.h" 

C4Board(){ 
    numCol = 7; 
} 

C4Board(int columns){ 
    numCol = columns; 
} 

~C4Board(){} 

それは他に私は、このエラーを与えたので、私はコンストラクタの前にC4Board::を処分しましたエラーをオーバーロード:私はそれが問題だとは思わないが、ここで

error: extra qualification ‘C4Board::’ on member ‘C4Board’ [-fpermissive] 
C4Board::C4Board(){ 
^ 

は、私の.hファイルである:

class C4Board{ 
    public: 
    C4Board(); 
    C4Board(int); 
    ~C4Board(); 
    void display(); 
    void play(); 
    private: 
    int numCol; 
    C4Col Board[7]; 
} 

ご協力いただければ幸いです。

+1

'.Cppに入れる必要があるコンストラクタの前にC4Board ::を取り除いています – SingerOfTheFall

+3

あなたの質問を編集し、.hファイルを変更しました。それはまだ間違っています(最後にセミコロンがありません)。あなたの変更があなたが求めているエラーを修正しなかったことをテストしましたか? –

答えて

1

コンパイラが異なるような機能を認識している、あなたはそれが本当にあなたの.hファイルであれば、それは最終的}を欠けている

C4Board::C4Board(){ 
    numCol = 7; 
} 

C4Board::C4Board(int columns){ 
    numCol = columns; 
} 
C4Board::~C4Board(){} 
0

...これらはあなたのクラスのメソッドの定義があることを指定する必要があります。それはこれらの症状を与えることができます。

#includeは、.hファイルのテキスト全体を.cppファイルに入れることができます。最後に}が不足していると、.cppファイルの関数定義が内にあり、 .hファイルのクラス定義になります。

関連する問題