Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Akumadie

#1
Estoy tratando de crear una clase abstracta, para luego heredarlo a una clase derivada.
El codigo es el siguiente:

El archivo "ICuenta.h"

Código (cpp) [Seleccionar]

#pragma once
#include<string>
#include <iostream>
#include <list>
#include "Cliente.h"

class ICuenta
{
std::string Nombre;
double Saldo;

public:
virtual void Extraer(double) = 0;
virtual void Depositar(double) = 0;
virtual void Transferir(Cuenta, double) = 0;
};


class Cuenta : public ICuenta
{
private:
list<Cliente> cliente;

public:
Cuenta();
~Cuenta();

void Extraer(double);
void Depositar(double);
void Transferir(Cuenta, double);
void AgregarCliente();
void EliminarCliente();
};



el archivo cpp:
Código (cpp) [Seleccionar]

#pragma once
#include "stdafx.h"
#include "ICuenta.h"


Cuenta::Cuenta() {};
Cuenta::~Cuenta() {};

void Cuenta::Extraer(double) {};
void Cuenta::Depositar(double) {};
void Cuenta::Transferir(Cuenta, double) {};
void Cuenta::AgregarCliente() {};
void Cuenta::EliminarCliente() {};



Aparentemente el problema esta en el metodo "virtual void Transferir(Cuenta, double)". Necesito pasar por parametro a otro objeto Cuenta para hacer una transferencia.
El error que me pone es:

sytanx error "Identifier 'Cuenta.'  en el ICuenta.h
y
Cuenta cannot instantiate abstract class en el ICuenta.cpp

Ayuda por favor


#2
Hola a todos! Tengo un problema al usar una plantilla (template) para devolver un objeto.
el código que tengo es:

Código (cpp) [Seleccionar]


template <typename P> P Datos::devolverPersona() {
P nuevo = P(strPersona.Apellido, strPersona.Nombre, strPersona.DNI, strPersona.ID());
return nuevo;
}



El typename P puede ser entre una clase "Cliente" o "Proveedor". ambas heredan de una clase llamada Persona.

al llamar a la funcion:
Código (cpp) [Seleccionar]

Cliente c1 = _d1->devolverPersona<Cliente>();


me tira un error.  larguisimo:

"Severity   Code   Description   Project   File   Line   Suppression State
Error   LNK2019   unresolved external symbol "public: class Cliente __thiscall Datos::devolverPersona<class Cliente>(void)" (??$devolverPersona@VCliente@@@Datos@@$$FQAE?AVCliente@@XZ) referenced in function "public: void __thiscall Venta::MostrarDatosDeOperacion(void)" (?MostrarDatosDeOperacion@Venta@@$$FQAEXXZ)   tp02   E:\Documentos\Diego\Programacion\c++\Sistema de Compra-Venta\tp02\tp02\Venta.obj   1"

Ayuda por favor!! Gracias
#3
Tengo una duda que no puedo lograr solucionar, y lo peor es que debe ser bastante sensilla.
Necesito crear un char x[variable].
La "variable" debe provenir a través de un parámetro de función , y el programa me dice que debe ser una constante. El problema es que aún siendo el parámetro enviado declarado "const" me sigue dando el mismo error.


Código (cpp) [Seleccionar]

char* devolverChar(const int a) {
char probando[a];
return *probando;
};


el error me dice que la variable a debe ser una constante...
Ayuda por favor!