Files
ooplab/lab7/file.org
Amneesh Singh 7ba9554ed5 labs 7: init
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2022-12-26 16:53:39 +05:30

88 lines
1.4 KiB
Org Mode

* Write a program to overload (++) operator.
#+ATTR_LATEX: :options frame=single,breaklines=true
#+begin_src cpp :tangle 19.cpp :results output :exports both :wrap src text
#include <iostream>
using namespace std;
class Foo {
int x;
public:
Foo(int _x) { x = _x; };
Foo &operator++();
int get() { return x; }
};
Foo &Foo::operator++() {
x++;
return *this;
}
int main() {
Foo bar = Foo(-3);
++bar;
cout << bar.get();
}
#+end_src
#+LATEX: \clearpage
* Write a program to overload + operator.
#+ATTR_LATEX: :options frame=single,breaklines=true
#+begin_src cpp :tangle 20.cpp :results output :exports both :wrap src text
#include <iostream>
using namespace std;
class Foo {
int x;
public:
Foo(int _x) { x = _x; };
Foo operator+(Foo);
int get() { return x; }
};
Foo Foo::operator+(Foo bar) {
return Foo(x + bar.get());
}
int main() {
Foo bar = Foo(-3);
Foo baz = Foo(8);
cout << (bar + baz).get();
}
#+end_src
#+LATEX: \clearpage
* Write a program to overload * operator.
#+ATTR_LATEX: :options frame=single,breaklines=true
#+begin_src cpp :tangle 21.cpp :results output :exports both :wrap src text
#include <iostream>
using namespace std;
class Foo {
int x;
public:
Foo(int _x) { x = _x; };
Foo operator*(Foo);
int get() { return x; }
};
Foo Foo::operator*(Foo bar) {
return Foo(x * bar.get());
}
int main() {
Foo bar = Foo(-3);
Foo baz = Foo(8);
cout << (bar * baz).get();
}
#+end_src