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/05/04 11:43] – [Παράδειγμα Υπερφόρτωσης Τελεστών] gthanoscpp:operator_overloading [2017/05/04 12:20] gthanos
Line 102: Line 102:
 #include <iostream> #include <iostream>
 #include <cstdlib> #include <cstdlib>
 +using namespace std;
  
 class Vector { class Vector {
Line 112: Line 113:
   Vector(const Vector *v);   Vector(const Vector *v);
   ~Vector();   ~Vector();
-}+  unsigned int length() const; 
 +  int &valueAt(unsigned int pos) const; 
 +  int find(int a); 
 +};
  
 Vector::Vector(unsigned int length) { Vector::Vector(unsigned int length) {
Line 133: Line 137:
   }   }
   for(int i=0; i<size; i++)   for(int i=0; i<size; i++)
-    array[i] = v.getValue(i);+    array[i] = v.valueAt(i);
 } }
  
Line 144: Line 148:
   }   }
   for(int i=0; i<size; i++)   for(int i=0; i<size; i++)
-    array[i] = v->getValue(i);+    array[i] = v->valueAt(i);
 } }
  
Line 153: Line 157:
 unsigned int Vector::length() const {  unsigned int Vector::length() const { 
   return size;    return size; 
 +}
 +
 +int &Vector::valueAt(unsigned int pos) const {
 +  if(pos>=length()) {
 +     cerr << "Invalid access position!\n";
 +     return array[size-1];
 +  }
 +  return array[pos];
 +}
 +
 +int Vector::find(int a) {
 +  for(int i=0; i<size; i++)
 +    if(array[i] == a)
 +      return i;
 +    return -1;
 +}
 +
 +int main() {
 +  Vector v(5);
 +  v.valueAt(0) = 2;  v.valueAt(1) = 3;
 +  v.valueAt(2) = 4;  v.valueAt(3) = 5;  v.valueAt(4) = 6; 
 } }
 </code> </code>
cpp/operator_overloading.txt · Last modified: 2021/05/24 06:28 (external edit)