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

User usuarioanonimomysql en gmail.com
Mar Feb 25 07:41:18 CET 2014


Ya me funciona, muchas gracias a todos por las respuestas. Simplemente era
que faltaba una clase en el makefile.

Saludos.


El 24 de febrero de 2014, 9:11, Jorge Medina <jorge en bsdchile.cl> escribió:

> 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.
>
> _______________________________________________
> 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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140225/13d633a8/attachment.html>


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