Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/11/2015, 11:32
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Duda con métodos distintos de escribir un código

Código C++:
Ver original
  1. cout << "a = " << i,j;

Ese código no te va a compilar en la vida... nada de "me da un resultado diferente".

En c++ existe la sobrecarga de operadores, y da la casualidad que '<<' se conoce como operador de inserción. Este operador es unario, es decir, únicamente va a aceptar un parámetro.

Llevando esto a C sería como hacer algo tal que (imagínate que puedes tener una función que se llame '<<':

Código C++:
Ver original
  1. <<(cout,"a =");
  2. <<(cout,i,j);

Se ve claramente que en la segunda línea estás intentando llamar a una función con 3 parámetros... que ni existe ni se la espera.

Cada vez que quieres llevar algo a la consola con cout tiene que ir precedido de '<<'. Si quieres volcar dos variables independientes, necesitas usar ese operador para cada una... y si entre medias de las dos variables tienes que introducir una coma... pues otro operador más:

Código C++:
Ver original
  1. std::cout << "a = " << i << "," << j;

Por eso te decía... es mucho más importante aprender los conceptos del lenguaje, como la sobrecarga de funciones. Y has de tener en cuenta que los operadores son tratados prácticamente como funciones y la prueba la tienes en el siguiente ejemplo:

Código C++:
Ver original
  1. int main()
  2. {
  3.   std::operator<<(std::cout,"Una prueba") << std::endl;
  4. }

Que es equivalente a:

Código C++:
Ver original
  1. int main()
  2. {
  3.   std::operator<<(std::cout,"Una prueba");
  4.   std::cout << std::endl;
  5. }

y a:

Código C++:
Ver original
  1. int main()
  2. {
  3.   std::cout << "Una prueba" << std::endl;
  4. }

¿Cómo funciona?

Sobrecarga de operadores. Cuando estudies esa parte entenderás todo esto :)