[C con Clase] Problema con interpretación de código relaccionado con clases.

Oscar pelucheloko en hotmail.com
Jue Ago 2 12:20:53 CEST 2012


Ah vale, ahora lo entiendo.

theCat es un objeto que se instancia en la función main, y puede ser como nombre theCat mismamente y/o otro nombre.

SimpleCat migato;
FunctionOne(migato);

Y retorna mismo tipo de retorno, SimpleCat.

Ayer no lo veía tan claro a pesar de ser sencillo ahora.

¡Muchas gracias Pablo!

From: Pablo Alejandro Herrero 
Sent: Thursday, August 02, 2012 5:22 AM
To: Lista de correo sobre C y C++ 
Subject: Re: [C con Clase]Problema con interpretación de código relaccionado con clases.

Para ser breve...


tipo_de_retorno    nombre_de_la_funcion    (tipo_del_argumento argumento)


cada objeto declarado en c/c++ tiene un tipo. Ya sea el retorno de una funcion como sus argumentos.
Lo que señalas es la declaración de dos funciones, de nombres FunctionOne y FunctionTwo las cuales admiten por argumento un objeto de clase SimpleCat -FunctionOne- y un puntero a objeto de clase SimpleCat -FunctionTwo- y a su vez devuelven como retorno un objeto de clase SimpleCat y un puntero a un objeto de clase SimpleCat respectivamente.




>> SimpleCat FunctionOne(SimpleCat theCat);
>> SimpleCat* FunctionTwo(SimpleCat *theCat);

El 1 de agosto de 2012 21:27, Oscar <pelucheloko en hotmail.com> escribió:

  Hola que tal.

  Tengo el siguiente código el cual me crea una confusión alarmante en las líneas que marcaré a su empieze con >>

  Sé que es una función lo que se declara, pero no entiendo los parámetros de entrada a esta.


  #include <iostream>
    
  class SimpleCat
  {
  public:
      SimpleCat();               // constructor
      SimpleCat(SimpleCat&);     // copy constructor
      ~SimpleCat();              // destructor
  };
    
  SimpleCat::SimpleCat()
  {
      std::cout << "Simple Cat Constructor ...\n";
  }
    
  SimpleCat::SimpleCat(SimpleCat&)
  {
      std::cout << "Simple Cat Copy Constructor ...\n";
  }
    
  SimpleCat::~SimpleCat()
  {
      std::cout << "Simple Cat Destructor ...\n";
  }
    
  >> SimpleCat FunctionOne(SimpleCat theCat);
  >> SimpleCat* FunctionTwo(SimpleCat *theCat);
    
  int main()
  {
      std::cout << "Making a cat ...\n";
      SimpleCat Frisky;
      std::cout << "Calling FunctionOne ...\n";
      FunctionOne(Frisky);
      std::cout << "Calling FunctionTwo ...\n";
      FunctionTwo(&Frisky);
      return 0;
  }
    
  // FunctionOne, passes by value
  SimpleCat FunctionOne(SimpleCat theCat)
  {
      std::cout << "Function One. Returning ...\n";
      return theCat;
  }
    
  // functionTwo, passes by reference
  SimpleCat* FunctionTwo (SimpleCat *theCat)
  {
      std::cout << "Function Two. Returning ...\n";
      return theCat; 
  }
  Haber si me pueden iluminar un poco por favor.

  Muchas gracias.


  Oscar Aparicio Holgado
  Administrador de sistemas.


  _______________________________________________
  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/20120802/395e5f0a/attachment.html>


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