--------------- RECURSION
-----------------------
int fun(int x, int y) {
if (x == y) {
return x;
} else if (x < y) {
return fun(x, y-x)+1;
} else {
return fun(x-y, y)+1;
}
}
int main() {
cout << fun(65,20);
}
----------------------- POLYMORPHISM ---------------------
class Super {
virtual void foo() { cout << "A"; }
void fee() { cout << "B"; }
};
class SubA : public Super {
virtual
void foo() { cout << "C"; }
void fee() { cout << "D"; }
};
class SubB : public Super {
virtual
void foo() { cout << "E"; }
void fee() { cout << "F"; }
};
int main() {
SubA a;
SubB b;
Super *supers[2];
supers[0] = &a;
supers[1] = &b;
supers[0]->foo();
supers[0]->fee();
supers[1]->foo();
supers[1]->fee();
}
----------- LIST RECURSION ------------
class List {
private:
Node* front;
public:
int myFun(Node* front, boolean b) {
if (front == 0)
return 1;
else if (b) {
return front->data * myFun(front->next,!b);
else
return front->data + myFun(front->next,!b);
}
int myFun() {
myFun(front,true);
}
}
int main() {
List list;
// suppose list is currently: 3 8 5 2
cout << list.myFun();