labs 7: init

Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
This commit is contained in:
2022-12-26 16:53:39 +05:30
parent 21afaa311b
commit 7ba9554ed5
7 changed files with 158 additions and 1 deletions

View File

@@ -32,3 +32,7 @@
* Lab 6
#+INCLUDE: ./lab6/file.org
#+LATEX: \clearpage
* Lab 7
#+INCLUDE: ./lab7/file.org
#+LATEX: \clearpage

BIN
file.pdf

Binary file not shown.

22
lab7/19.cpp Normal file
View File

@@ -0,0 +1,22 @@
#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();
}

22
lab7/20.cpp Normal file
View File

@@ -0,0 +1,22 @@
#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();
}

22
lab7/21.cpp Normal file
View File

@@ -0,0 +1,22 @@
#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();
}

87
lab7/file.org Normal file
View File

@@ -0,0 +1,87 @@
* 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