簡體   English   中英

函數不能重載錯誤C ++

[英]function cannot be overloaded error c++

我正在學習通過制作在棋盤類中具有專欄類的Connect 4游戲來學習構圖。 我花了很多時間試圖找出這些重載錯誤:

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

任何幫助將不勝感激。

編譯器將函數識別為不同函數,您必須指定這些是您的類方法的定義...

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

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

如果這確實是您的.h文件,那么它將缺少final } 那可以給這些症狀。

請記住, #include可以看作是將.h文件的整個文本放入.cpp文件中。 缺少最終的}導致.cpp文件中的函數定義位於.h文件中的類定義

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM