[C con Clase] Pasar string directamente a una función

Jorge Medina jorge en bsdchile.cl
Lun Feb 24 09:11:41 CET 2014


prueba con g++ -std=gnu++98 a.cpp


2014-02-23 22:15 GMT+01:00 User <usuarioanonimomysql en gmail.com>:

> Hola,
>
> He ejecutado:
>
> g++ --version
>
> y he obtenido.
>
> g++ (Ubuntu 4.4.3-4ubuntu5) 4.4.3
>
> Y en la máquina que me funciona obtengo:
>
> g++ (GCC) 4.2.1
>
> Saludos.
>
>
> El 21 de febrero de 2014, 7:03, User <usuarioanonimomysql en gmail.com>escribió:
>
> Hola de nuevo,
>>
>> He probado en otra máquina Linux y el código compila correctamente, tiene
>> que ser el compilador g++ concreto de la máquina. Cuando tenga la
>> oportunidad ejecutaré:
>>
>> g++ --version
>>
>> y os diré que versión de compilador tengo instalado.
>>
>> Saludos y gracias por las pruebas.
>>
>>
>> El 20 de febrero de 2014, 20:21, d1cor <cordobadie en gmail.com> escribió:
>>
>>
>>> Yo no tengo ningun problema al compilar y ejecutar la llamada usando un
>>> argumento tipo string con el siguiente código:
>>>
>>> #include <iostream>
>>> #include <string>
>>> using namespace std;
>>> void foo(const string texto)
>>> {
>>>     cout << texto << endl;
>>> }
>>> int main()
>>> {
>>> foo("hola");
>>> return 0;
>>>  }
>>>
>>>
>>> ----
>>> y la compilación (a.cpp es el fuente):
>>>
>>> die en tuta2:/tmp$ g++ a.cpp
>>> die en tuta2:/tmp$ ./a.out
>>> hola
>>>
>>> die en tuta2:/tmp$ g++ --version
>>> g++ (Debian 4.8.2-1) 4.8.2
>>> Copyright (C) 2013 Free Software Foundation, Inc.
>>> This is free software; see the source for copying conditions.  There is
>>> NO
>>> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
>>> PURPOSE.
>>>
>>> No será otro el problema? Resulta raro el error.
>>>
>>> Slds a todos!
>>> --
>>> Ing. Diego Cordoba
>>> Instructor/Consultor GNU/Linux
>>> LPI Linux Certified Professional
>>> Site: www.d1cor.com.ar
>>>
>>>
>>> On Thu, 20 Feb 2014 16:27:58 +0100
>>> User <usuarioanonimomysql en gmail.com> wrote:
>>>
>>> > No, es un requerimiento usar string y no un puntero a char.
>>> >
>>> >
>>> > El 20 de febrero de 2014, 14:00, Joel Martín Prada García <
>>> > joel.prada en gmail.com> escribió:
>>> >
>>> > > Buenos días, Utilice un apuntador a caracter en la declaración de la
>>> > > función, así:
>>> > >
>>> > > #include <iostream>
>>> > > #include <string>
>>> > >
>>> > > using namespace std;
>>> > >
>>> > > void foo(char *texto)
>>> > > {
>>> > > printf("%s",texto);
>>> > > }
>>> > >
>>> > > int main()
>>> > > {
>>> > > foo("hola");
>>> > > return 0;
>>> > > }
>>> > >
>>> > >
>>> > >
>>> > > El 20 de febrero de 2014, 2:35, User
>>> > > <usuarioanonimomysql en gmail.com>escribió:
>>> > >
>>> > >> Hola,
>>> > >>
>>> > >> Tengo una función que recibe un parámetro de tipo std::string,
>>> > >> cuando trato de llamar a esa función pasando directamente un
>>> > >> string el compilador me da un error diciendo que no existe una
>>> > >> función tal que reciba lo que le estoy pasando.
>>> > >>
>>> > >> Es algo así:
>>> > >>
>>> > >> #include <iostream>
>>> > >> #include <string>
>>> > >>
>>> > >> using namespace std;
>>> > >>
>>> > >> void foo(const string &texto)
>>> > >> {
>>> > >> }
>>> > >>
>>> > >> int main()
>>> > >> {
>>> > >>   foo("hola");
>>> > >>   return 0;
>>> > >> }
>>> > >>
>>> > >> También he probado a llamarlo así:
>>> > >>
>>> > >> foo(string("hola"));
>>> > >>
>>> > >> con el mismo resultado.
>>> > >>
>>> > >> Utilizo g++ para compilar. No me gustaría tener que recurrir a
>>> > >> crear variables de tipo string para llamar a foo. ¿Alguna idea de
>>> > >> qué puede ser?
>>> > >>
>>> > >> Saludos.
>>> > >>
>>> > >> _______________________________________________
>>> > >> Lista de correo Cconclase Cconclase en listas.conclase.net
>>> > >>
>>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>>> > >> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>>> > >>
>>> > >
>>> > >
>>> > > _______________________________________________
>>> > > Lista de correo Cconclase Cconclase en listas.conclase.net
>>> > >
>>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>>> > > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>>> > >
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Lista de correo Cconclase Cconclase en listas.conclase.net
>>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>>>
>>
>>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
Jorge Andrés Medina Oliva.
Computer engineer.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140224/43f41e6d/attachment.html>


Más información sobre la lista de distribución Cconclase