Foros del Web » Programación para mayores de 30 ;) » C/C++ »

programa

Estas en el tema de programa en el foro de C/C++ en Foros del Web. Muy buenas a todos quisiera solicitar su ayuda para este problema, como logor invocar los atributos esta clase en el main para introducir datos y ...
  #1 (permalink)  
Antiguo 28/03/2016, 12:19
 
Fecha de Ingreso: marzo-2016
Mensajes: 1
Antigüedad: 8 años
Puntos: 0
programa

Muy buenas a todos quisiera solicitar su ayuda para este problema, como logor invocar los atributos esta clase en el main para introducir datos y guardarlos, de ser posible agregar un menu de seleccion.

gracias por su cooperacion

#include<iostream>
#include<sstream>
#include<string>
using namespace std;

class CuentaCorreo{
private:
string nombreCuenta;
string password;

public:
CuentaCorreo(){
string nombreCuenta=" ";
string password=" ";
}

~CuentaCorreo(){
}
CuentaCorreo(string n, string c){
nombreCuenta=n;
password=c;
}
void setNombreCuenta(string n){
nombreCuenta=n;
}
void setPassword(string c){
password=c;
}

string getNombreCuenta(){
return(nombreCuenta);
}
string getPassword(){
return(password);
}

string toString(){
stringstream c1;
c1<<"User Name: "<<nombreCuenta<<endl<<"Password: "<<password
<<endl;
return c1.str();
}
};

int main(){
string username, password;
cout<<"Choose your username: "<<endl;
cin>>username;
cout<<"choose your password: "<<endl;
cin>>password;
  #2 (permalink)  
Antiguo 29/03/2016, 00:31
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: programa

Código C++:
Ver original
  1. class CuentaCorreo{
  2. private:
  3. string nombreCuenta;
  4. string password;
  5.  
  6. public:
  7. CuentaCorreo(){
  8. string nombreCuenta=" ";
  9. string password=" ";
  10. }

Esas dos últimas líneas están mal por varias razones:
  • En la parte private ya has declarado dos variables con esos mismos nombres
  • La parte private la has colocado antes que la public. La segunda declaración siempre será incorrecta.
  • No se pueden asignar valores en la declaración de miembros de una clase.

La inicialización de variables has de hacerla en el constructor. Aún así has de saber que las variables, al ser de tipo string, implementan su propio constructor que establece un valor por defecto por lo que no es necesario indicar que su valor inicial es una cadena vacía.

En cuanto al problema de la doble declaración puedes optar por eliminar la declaración de la parte privada (opción rápida y menos recomendable) o sustituir la declaración de la parte pública por un juego de setter-getter, es decir, una función para recuperar el valor y otra para modificarlo:

Código C++:
Ver original
  1. std::string getter1()
  2. { return nombreCuenta; }
  3.  
  4. void setter1(const std::string& valor)
  5. { nombreCuenta = valor; }

Lo del menú ya corre de tu cuenta. Una cosa es ayudarte con algo que no entiendes y otra hacerte la tarea.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.

Etiquetas: c++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:14.