Dev - C++ - Constructores

 
Vista:
Imágen de perfil de Dennis
Val: 141
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Constructores

Publicado por Dennis (63 intervenciones) el 27/05/2021 18:54:01
Hola a todos y saludos.
Hice este pequeño programa, se que no es buena practica utilizar variables globales.
No comprendo como utilizar el constructor de copia que he creado y si lo declare mal o tienen una idea mejor les agradeceria que me lo comentaran, esto es un poco complicado de entender e implementar.
El objetivo es que cuendo haga una copia del objeto saque un cartel y me lo diga.
Gracias de antemano.

main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
 
#include "Factura.h"
#include "Factura.cpp"
 
using namespace std;
 
Factura** cuenta;
int total;
 
void registrar(Factura*& cuenta){
    string numero;
    string descripcion;
    int cantidad;
    float precio;
 
    cout<< "Numero: ";
     cin>> numero;
 
    cout<< "Descripcion: ";
    getline(cin.ignore(),descripcion);
 
    cout<< "Cantidad: ";
     cin>> cantidad;
 
    cout<< "Precio: ";
     cin>> precio;
 
    cuenta =  new Factura(numero, descripcion, cantidad, precio);
 
}
 
void leer(){
    cout<< "Total de cuentas: ";
     cin>> total;
 
    cuenta = new Factura*[total];
 
    for(int i = 0; i < total; ++i){
        registrar(cuenta[i]);
    }
}
 
void mostrar(Factura*& cuenta){
    cout<< "Numero: "       << cuenta->getNumero()      <<endl;
    cout<< "Descripcion: "  << cuenta->getDescripcion() <<endl;
    cout<< "Cantidad: "     << cuenta->getCantidad()    <<endl;
    cout<< "Precio: "       << cuenta->getPrecio()      <<endl;
}
 
void mostrarCuentas(){
    for(int i = 0; i < total; ++i){
        mostrar(cuenta[i]);
        cout<<endl;
    }
}
 
int main(){
 
    leer();
    mostrarCuentas();
 
    return 0;
}


Factura.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "Factura.h"
 
#include <string>
 
using namespace std;
 
Factura::Factura(string numero, string descripcion, int cantidad, float precio){
    setNumero(numero);
    setDescripcion(descripcion);
    setCantidad(cantidad);
    setPrecio(precio);
}
 
void Factura::setNumero(string _numero){
    numero = _numero;
}
 
void Factura::setDescripcion(string _decripcion){
    descripcion = _decripcion;
}
 
void Factura::setCantidad(int _cantidad){
    cantidad = _cantidad;
}
 
void Factura::setPrecio(float _precio){
    precio = _precio;
}
 
string Factura::getNumero(){
    return numero;
}
 
string Factura::getDescripcion(){
    return descripcion;
}
 
int Factura::getCantidad(){
    return cantidad;
}
 
float Factura::getPrecio(){
    return precio;
}

Factura.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef FACTURA_H
#define FACTURA_H
 
#include <string>
 
using namespace std;
 
class Factura{
    private:
        string numero;
        string descripcion;
        int cantidad;
        float precio;
 
    public:
        Factura(string, string, int, float);
 
        Factura(const Factura& copy);
 
        void setNumero(string);
        void setDescripcion(string);
        void setCantidad(int);
        void setPrecio(float);
 
        string getNumero();
        string getDescripcion();
        int getCantidad();
        float getPrecio();
};
 
#endif // FACTURA_H
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder