变量错误的重新定义

Redefinition of a variable Error

本文关键字:定义 新定义 错误 变量      更新时间:2023-10-16

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

在 cpp 中,我得到了重新定义类的错误,而在 .h 中"有一个类 casilla 的先前定义。我已经在互联网上搜索过它,但什至没有将 casilla:: 放在一个之前或放置标题工作。代码如下:

卡西利亚:

#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_ */

卡西利亚.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;
   }
};

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

在卡西利亚.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
}