[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