Hola, al hacer el build me sale este error:
>main.obj : error LNK2005: "int * * mat" (?mat@@3PAPAHA) already defined in Ident.obj
1>main.obj : error LNK2005: "int * * matran" (?matran@@3PAPAHA) already defined in Ident.obj
1>D:\Programación C++\programaII\ident_estat\Debug\ident_estat.exe : fatal error LNK1169: one or more multiply defined symbols found
1>Build log was saved at "file://d:\Programación C++\programaII\ident_estat\ident_estat\Debug\BuildLog.htm"
estas variables estan definidas en el .h antes de la clase. He estado leyendo cómo solucionarlo y una opción es ponerles antes extern pero no me funciona. No sé que tengo que hacer para solucionarlo. Os dejo mi código:
MAIN.CPP
#include <stdio.h>
#include <stdlib.h>
#include "ident.h"
#include <time.h>
#include<conio.h>
#include<string.h>
#pragma once
//#include "stdafx.h"
#pragma warning(disable : 4996)
void main()
{
FILE *fichero1;
FILE *fichero2;
FILE *fichero3;
Ident one;
char c[20];
ARBOL raiz=NULL;
...
IDENT.H
#pragma once
#include <stdio.h>
//#include <conio.h>
#include <stdlib.h>
#ifndef __IDENT__
#define __IDENT__
#define N 129 //numero de filas de la matriz de transiciones
#define M 14//numero de columnas de la matriz de transiciones
struct nodoarbol{ //ESTRUCTURA DEL ARBOL
int est;
int tran[4];
struct nodoarbol *izqnodo;
struct nodoarbol *hernodo;
struct nodoarbol *dernodo;
};
typedef struct nodoarbol NODO; //DEFINICION DE TIPO NODO
typedef NODO *ARBOL; //DECLARACION DE VARIABLE PUNTERO A NODO
int** matran;
int** mat;
class Ident
{
public:
Ident(void);
void leersecuencia(FILE *fin,FILE *fout); //almacena las secuencias de entrada y salida en matriz
void escribirmatriz(FILE *fconf); //escribe resultado en fichero de salida
void escribirtran(); //crea una matriz con las transicones por niveles
void creararbol (ARBOL *nod);
~Ident(void);
};
#endif
IDENT.CPP
#include "Ident.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#pragma once
Ident::Ident(void)
{
}
void Ident::leersecuencia(FILE *fin,FILE *fout)
{
}void Ident::escribirmatriz(FILE *fconf)
{
}
void Ident::escribirtran()
{
}
....
A ver si me podeis ayudar.
Muchas gracias.