88 lines
1.4 KiB
Org Mode
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
|