User Tools

Site Tools


cpp:operator_overloading

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
cpp:operator_overloading [2017/04/26 14:43] gthanoscpp:operator_overloading [2017/05/04 11:43] – [Παράδειγμα Υπερφόρτωσης Τελεστών] gthanos
Line 98: Line 98:
 ===== Παράδειγμα Υπερφόρτωσης Τελεστών ===== ===== Παράδειγμα Υπερφόρτωσης Τελεστών =====
  
-Ας υποθέσουμε ότι έχουμε την παρακάτω κλάση Vector η οποία λαμβάνει ένα μονοδιάστατο πίνακα από ακεραίους. +Ας υποθέσουμε ότι έχουμε την παρακάτω κλάση //Vector// η οποία υλοποιεί ένα μονοδιάστατο πίνακα από ακεραίους.
 <code cpp Vector.cpp> <code cpp Vector.cpp>
 +#include <iostream>
 +#include <cstdlib>
 +
 +class Vector {
 +  int *array;
 +  unsigned int size;
 +  
 +public:
 +  Vector(unsigned int length=0);
 +  Vector(const Vector &v);
 +  Vector(const Vector *v);
 +  ~Vector();
 +}
 +
 +Vector::Vector(unsigned int length) {
 +  size = length;
 +  array = new (nothrow) int[size];
 +  if(array==NULL) {
 +    cerr << "Memory allocation failure!" << endl;
 +    exit(-1);
 +  }
 +  for(int i=0; i<size; i++)
 +    array[i] = 0;
 +}
 +
 +Vector::Vector(const Vector &v) {
 +  size = v.length();
 +  array = new (nothrow) int[size];
 +  if(array==NULL) {
 +    cerr << "Memory allocation failure!" << endl;
 +    exit(-1);
 +  }
 +  for(int i=0; i<size; i++)
 +    array[i] = v.getValue(i);
 +}
 +
 +Vector::Vector(const Vector *v) {
 +  size = v->length();
 +  array = new (nothrow) int[size];
 +  if(array==NULL) {
 +    cerr << "Memory allocation failure!" << endl;
 +    exit(-1);
 +  }
 +  for(int i=0; i<size; i++)
 +    array[i] = v->getValue(i);
 +}
 +
 +Vector::~Vector() {
 +  delete [] array;
 +}
 +
 +unsigned int Vector::length() const { 
 +  return size; 
 +}
 </code> </code>
 +
 Για την κλάση //Vector//. Για την κλάση //Vector//.
  
cpp/operator_overloading.txt · Last modified: 2021/05/24 06:28 (external edit)