[C con Clase] Referencias a variables
User
usuarioanonimomysql en gmail.com
Sab Abr 18 00:01:09 CEST 2020
Hay una errata en mi anterior e-mail, el segundo código era sin 'auto', es
decir, así:
int x;
int y;
int a = std::ref(x);
x = 9;
std::cout << "x, " << x << "!\n";
std::cout << "y, " << y << "!\n";
std::cout << "a, " << a << "!\n\n";
a = std::ref(y);
y = 7;
std::cout << "x, " << x << "!\n";
std::cout << "y, " << y << "!\n";
std::cout << "a, " << a << "!\n";
El vie., 17 abr. 2020 a las 20:50, User (<usuarioanonimomysql en gmail.com>)
escribió:
> Hola,
>
> Estoy tratando de asignar el valor de una variable 'x' de tipo entero a
> otra 'a' mediante una referencia y posteriormente hacer que el valor de
> otra variable 'y' se asigne a esa variable 'a' también mediante referencia.
>
> He visto que esto se puede hacer de esta manera (en C++11):
>
> int x;
> int y;
> auto a = std::ref(x);
> x = 9;
> std::cout << "x, " << x << "!\n";
> std::cout << "y, " << y << "!\n";
> std::cout << "a, " << a << "!\n\n";
> a = std::ref(y);
> y = 7;
> std::cout << "x, " << x << "!\n";
> std::cout << "y, " << y << "!\n";
> std::cout << "a, " << a << "!\n";
>
> La salida sería:
>
> x, 9! y, 0! a, 9! x, 9! y, 7! a, 7!
>
> Lo cual me parece lógico.
>
> Pero yo pensaba que esto lo podría hacer sin usar 'auto', es decir, así:
>
> int x;
> int y;
> auto a = std::ref(x);
> x = 9;
> std::cout << "x, " << x << "!\n";
> std::cout << "y, " << y << "!\n";
> std::cout << "a, " << a << "!\n\n";
> a = std::ref(y);
> y = 7;
> std::cout << "x, " << x << "!\n";
> std::cout << "y, " << y << "!\n";
> std::cout << "a, " << a << "!\n";
>
> Pero en este caso la salida es esta:
>
> x, 9! y, 0! a, 0! x, 9! y, 7! a, 0!
>
> Mi pregunta es, ¿siempre hay que usar 'auto' para tipos simples como 'int'
> o si por el contrario tenemos un tipo que por ejemplo es una clase
> funcionaría sin 'auto'?
>
> Saludos,
>
> User.
>
>
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> Libre
> de virus. www.avast.com
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
> <#m_-2241250398602911455_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20200418/4bd61475/attachment.html>
Más información sobre la lista de distribución Cconclase