SoloCodigo

Programación General => C/C++ => Visual C++ => Mensaje iniciado por: pix en Miércoles 28 de Mayo de 2008, 10:54

Título: Typedef
Publicado por: pix en Miércoles 28 de Mayo de 2008, 10:54
hola, estoy hacienco un programa en el cual en el programa principal declaro un typedef (arbol) que luego uso como parámetro a una función que pertenece a la clase ident. Al compilar me salen estos errores:

1>d:\programación c++\ident_estat\ident_estat\ident.h(27) : error C2061: syntax error : identifier 'ARBOL'
1>d:\programación c++\ident_estat\ident_estat\main.cpp(61) : error C2660: 'Ident::creararbol' : function does not take 1 arguments

supongo que el archivo .h no reconoce  el tipo arbol que declaro en el archivo principal .cpp.

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;
   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
   
   Ident one;
   char c[20];
   
   ARBOL raiz=NULL;
...
printf("Ficheros abiertos\n");
   one.leersecuencia(fichero1,fichero2);
   printf("Secuencias obtenidas\n");
   one.escribirmatriz(fichero3);
   one.creararbol (&raiz);


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


class Ident
{
private:
   
   int *mat[N][M];
   

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 creararbol (ARBOL *nuevo);
   ~Ident(void);
};
#endif


¿CÓMO LO PUEDO RESOLVER?
GRACIAS
Título: Re: Typedef
Publicado por: Eternal Idol en Miércoles 28 de Mayo de 2008, 11:02
Pasalo a la cabecera (.h) ...
Título: Re: Typedef
Publicado por: pix en Miércoles 28 de Mayo de 2008, 11:43
Ok, gracias!
Pero si lo paso al .h no puedo inicializar desde el programa principal el puntero al nodo raiz y pasraselo como parametro a la funcion! no?
Título: Re: Typedef
Publicado por: pix en Miércoles 28 de Mayo de 2008, 11:46
Ah si, perdón!