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
Factura.cpp
Factura.h
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


0