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

User usuarioanonimomysql en gmail.com
Vie Feb 21 07:03:18 CET 2014


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


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