[C con Clase] Resumen de Cconclase, Vol 47, Envío 30

Steven Davidson srd4121 en njit.edu
Lun Abr 26 09:33:47 CEST 2010


Hola Zully,

2010/4/26 Lapizlazuli Castillo Quiroz <zhully777 en hotmail.com>

> holas
>
> nose cual es el problema por que el programa no complila me tira errores ,
> por favor quisiera saber si pueden encotrar la falla  scout was not
> declared in this scope y tambien argument of type ' int (Archivito ::) ()'
> does not mach 'int'
>

Los comentariosm en inglés, suelen ser explicativos, aunque a veces breves.
Veamos el código fuente.


> #include <iostream>
> #include <string>
> using namespace std;
> class Archivito{
>     private :
>    string nombre;
>     int cantElementos;
>     public :
>     Archivito ();
>

Al menos que tengas definido este constructor en algún otro archivo, ésta
declaración debería ser también una definición. Esto es,

Archivito() {}

Claro que sería mucho mejor si inicializas los datos miembro de esta clase,
que para esto sirve el constructor. Por ejemplo,

Archivito() : nombre(""), cantElementos(0)  {}


>     void setnombre (string nombres){
>

Aconsejo pasar este argumento por referencia. Esto es,

void setnombre( const string &nombres )


>      nombre = nombres;}
>
>     void setcantElementos ( int elements){
>      cantElementos = elements;}
>
>     string getnombre (){
>         return  nombre;}
>      int getcantElementos (){
>       return  cantElementos;}
>

Las funciones de tipo 'get' suelen ser constantes. Esto es,

string getnombre() const;
 string getcantElementos() const;

ya que no tenemos intención alguna de modificar el estado de este objeto; es
decir, los datos pertenecientes a este objeto.


> };
>
> int main()
> {
>     Archivito arch ;
>     arch.setnombre ("zully");
>     arch.setcantElementos (10);
>     string unNombre;
>     unNombre = arch.getnombre;
>

Esto es incorrecto, y el compilador te marca un error por ello.
'getnombre()' es una función y por tanto, se invoca de igual manera que
cualquier función en C/C++. Te faltan los paréntesis para indicar la lista
de parámetros que vas a pasar, que puede estar vacía. Esto es,

unNombre = arch.getnombre();

>    int cant = arch.getcantElementos;
>

Nuevamente, invoca la función miembro correctamente; esto es,

int cant = arch.getcantElementos();


>     scout << " Resultados del Directorio/s es/son :"<<endl;
>

Éste es el otro error que te marca el compilador. 'scout' no existe.
Seguramente querías escribir 'cout'; o sea,

cout << " Resultados del Directorio/s es/son :"<<endl;


>     cout << "\n\n";
>     cout << " NONBRE         CANTIDAD de Sub-ELEMENTOS  " << endl;
>     cout << "\n\n";
>     cout << unNombre    << "   " << cant;
>     cout << "\n\n";
>
>  return 0;
> }
>
>
>

Espero que esto aclare las dudas.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100426/dfb44172/attachment.html>


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