Advertisement
Guest User

Untitled

a guest
Mar 20th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Producto{
  5. private:
  6. string Nombre;
  7. int Cantidad;
  8. public:
  9. Producto(){
  10. return;
  11. }
  12. Producto(string nom,int cant){
  13. Nombre=nom;
  14. Cantidad=cant;
  15. return;
  16. }
  17.  
  18. //operador de entrada
  19. friend istream& operator>>(istream &medio, Producto p){
  20. cout<<"Nombre del producto: "; medio>>p.Nombre;
  21. cout<<"Cuantos quiere?: "; medio>>p.Cantidad;
  22. return medio;
  23. }
  24. //operador de salida
  25. friend ostream& operator<<(ostream &medio, Producto p){
  26. medio<<p.Cantidad<<" de "<<p.Nombre<<endl;
  27. return medio;
  28. }
  29.  
  30. };
  31.  
  32. class Compra{
  33. private:
  34. Producto *V;
  35. int N;
  36. void borrar(){
  37. //Esto es lo que tendria q tener el destructor
  38. //liberar la memoria
  39. if (V!=NULL){
  40. delete[]V;
  41. }
  42. //pone todo a 0
  43. V=NULL;
  44. N=0;
  45. return;
  46. }
  47. void copiar(const Compra &origen){
  48. //lo que haria el contructor de copia. hace una copia de todos los elementos
  49. N=origen.N;
  50. V=NULL;
  51. if(N>0){
  52. V=new Producto[N];
  53. for(int i=0;i<N;i++){
  54. V[i]=origen.V[i];
  55. }
  56. }
  57. return;
  58. }
  59.  
  60. public:
  61. Compra(){
  62. N=0;
  63. V=NULL;
  64. return;
  65. }
  66. Compra(const Compra &origen){
  67. copiar(origen);
  68. return;
  69. }
  70. ~Compra(){
  71. borrar();
  72. }
  73.  
  74. Compra operator=(Compra origen){
  75. //libera memoria y pone todo a 0
  76. borrar();
  77. //hace una copia de todos los elementos
  78. copiar(origen);
  79. return(*this);
  80. }
  81.  
  82. friend ostream& operator<<(ostream &medio, Compra c){
  83.  
  84. for(int i=0;i<c.N;i++){
  85. medio<<c.V[i]<<endl;
  86. }
  87. return medio;
  88. }
  89.  
  90. Compra operator+(const Producto &p){
  91. Compra nueva;
  92. nueva.V = new Producto [N + 1];
  93. nueva.N = N + 1;
  94. for(int i = 0; i < N; i++){
  95. nueva.V[i] = V[i];
  96. }
  97. nueva.V[nueva.N-1] = p;
  98. return nueva;
  99. }
  100. Compra operator+=(const Producto &p){
  101. *this = *this + p;
  102. return *this;
  103. }
  104.  
  105.  
  106. };
  107.  
  108.  
  109.  
  110.  
  111. int main(void){
  112.  
  113. Compra c;
  114. c=c+Producto("queso",2);
  115. c=c+Producto("salchichon",3);
  116. Producto p;
  117. cout<<"Introduzca producto\n";
  118. cin>>p;
  119. c+=Producto("salchichon",5);
  120. cout<<"\n Compra: "<<endl<<c;
  121. return 0;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement