重新定义变量Error

时间:2015-01-25 16:15:45

标签: c++ eclipse

我有2个类,casilla.cpp和casilla.h。

在cpp中我得到了类重新定义的错误,并且在.h“中有一个类casilla的先前定义。我在互联网上搜索过它,但是甚至没有把casilla ::放在一个或者放在一个之前标题工作。这是代码:

Casilla.h:

#ifndef CASILLA_H_
#define CASILLA_H_


using namespace std;

class Casilla { //previous definition of ‘class Casilla’
 public:
 casilla(); //ISO C++ forbids declaration of ‘casilla’ with no type [-fpermissive]
 virtual ~casilla(); //expected class-name before ‘(’ token

 void SetNumeroCasilla (int _numero);
};

 /* namespace std */

#endif /* CASILLA_H_ */

Casilla.cpp:

  #include "Casilla.h"
   #include "Tablero.h"
   using namespace std;


#include <iostream>
#include <iomanip>
 class Casilla  //errors :Multiple markers at this line
- redefinition of ‘class Casilla’
- Line breakpoint: Casilla.cpp [line: 
 17]
{
int fila;
int columna;
int numero;

public:

  // default constructor
Casilla::Casilla()
: fila(-1)
, columna(-1)
, numero(0)
{ }

 int GetNumero() {return numero;}
void SetCasillaPosition (int _fila, int _columna) //set a cell position
  {
      fila = _fila;
      columna = _columna;
  }
void SetNumeroCasilla (int _numero)             //set a cell value
  {
      numero = _numero;
  }
 void SetCasillaFull (int _fila, int _columna, int _numero) //set a cell     position and value
    {
      fila = _fila;
      columna = _columna;
      numero = _numero;
   }

};

刚刚更改了显示的新错误的代码。重新定义的错误仍然存​​在,我做错了什么?

1 个答案:

答案 0 :(得分:3)

在casilla.cpp中,你正在重新定义casilla ... class casilla { .. };是一个类定义,你有两次:一次在你的标题中,一次在你的cpp中。因此,重新定义错误。

.cpp中你需要做的就是提供你在.h中声明的类方法的定义:

#include "Casilla.h"
// other includes

// define the default constructor:
casilla::casilla()
: fila(-1)
, columna(-1)
, numero(0)
{ }

// define this function
void casilla::SetNumeroCasilla (int _numero)
{
    // something
}