Estoy portando un proyecto de Visual c a NetBeans a pelo. Es decir incluyendo las clases directamente, ya que no se otra forma de hacerlo.
El problema es que ahora el compilador me da un error que no me daba con Visual c.
El error es el siguiente...
Código C++:
y el método en el que me da el error:Ver original
/Project1/motorInferencia.cpp: In copy constructor `std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)': /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/ios_base.h:781: error: `std::ios_base::ios_base(const std::ios_base&)' is private /Project1/motorInferencia.cpp:39: error: within this context /Project1/motorInferencia.cpp: In copy constructor `std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf(const std::basic_filebuf<char, std::char_traits<char> >&)': /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/streambuf:769: error: `std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private Project1/motorInferencia.cpp:39: error: within this context
Código C++:
Ver original
void motorInferencia::crearArbol(char * ruta){ lector r = lector(ruta); TAD * datos; vector <string> formulasinf = r.leer(); vector <string> formulaspos = vector<string>(); datos = new TAD("1."); while(!formulasinf.empty()){ string inFija,postFija; inFija=formulasinf.back(); formulasinf.pop_back(); postFija=deInfaPost(inFija); formulaspos.push_back(postFija); } r.cerrar(); //En este momento ya tenemos todas las formulas pasadas a postfijas... while (!formulaspos.empty()){ string postf; arbol * ab; postf=formulaspos.back(); formulaspos.pop_back(); ab=dePostaArbol(postf); datos->addElemento(ab); } listaArboles.push_back(datos); }
El error me lo da en la linea en la que declaro la variable r de tipo lector.
La clase lector es:
(.h)
Código C++:
Ver original
#include <stdlib.h> #include <iostream> #include <fstream> #include "TAD.h" #include <vector> #include <string> class lector { private: std::ifstream fin; public: lector(char * ); vector<string> leer(); void cerrar(void); };
y el .cpp:
Código C++:
Ver original
#include "lector.h" /**************************************************************** Apertura del ficher de entrada ******************************************************************/ lector::lector(char * ruta) { fin.open(ruta); if (!fin){ cout << "Error al abrir el fichero"<< endl; } } /**************************************************************** Devuelve un vector con todas las lineas del fichero de entrada. En cada posicion del vector hay una formula. ******************************************************************/ vector<string> lector::leer(){ vector<string> vector_formulas; string line; while(getline(fin, line)) vector_formulas.push_back(line); return vector_formulas; } /**************************************************************** Cierre del fichero de entrada ******************************************************************/ void lector::cerrar(void) { fin.close(); }
Si alguien puede echarme una mano se lo agradezco muchisimo, ya que necesito que el proyecto se ejecute en NetBeans. Gracias a todos de antemano.