Files
ooplab/lab9/file.org
Amneesh Singh 42902fa122 labs 9: init
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2022-12-26 18:06:44 +05:30

123 lines
2.2 KiB
Org Mode

* Write a program to illustrate how to define and declare a class template for reading two data items from the keyboard and to find their sum.
#+ATTR_LATEX: :options frame=single,breaklines=true
#+begin_src cpp :tangle 25.cpp :wrap src text
#include <iostream>
using namespace std;
template <typename T,
typename = enable_if_t<std::is_arithmetic<T>::value, T>>
class Foo {
T x, y;
public:
Foo() {
cout << "x: ";
cin >> x;
cout << "y: ";
cin >> y;
}
T sum() { return x + y; };
};
int main() {
Foo<float> bar;
cout << bar.sum();
return 0;
}
#+end_src
#+begin_src text
x: 4.3
y: 9.1
13.4
#+end_src
#+LATEX: \clearpage
* Write a program to demonstrate the use of special functions, constructor and destructor in the class template. The program is used to find the biggest of two entered numbers.
#+ATTR_LATEX: :options frame=single,breaklines=true
#+begin_src cpp :tangle 26.cpp :wrap src text
#include <iostream>
using namespace std;
template <typename T,
typename = std::enable_if_t<std::is_arithmetic<T>::value, T>>
class Foo {
T x, y;
public:
Foo() {
cout << "x: ";
cin >> x;
cout << "y: ";
cin >> y;
}
~Foo() { cout << "Destructor called, nothing to do here."; }
T mx() { return (x > y ? x : y); };
};
int main() {
Foo<float> bar;
cout << bar.mx() << endl;
return 0;
}
#+end_src
#+begin_src text
x: 3.4
y: 9.1
9.1
Destructor called, nothing to do here.
#+end_src
#+LATEX: \clearpage
* Write a program to illustrate how template functions can be overloaded.
#+ATTR_LATEX: :options frame=single,breaklines=true
#+begin_src cpp :tangle 27.cpp :wrap src text
#include <fstream>
#include <iostream>
using namespace std;
const string FILE_PATH = "./27.out";
int main() {
string line;
cout << "Running program till the string \"EOH\" is received via stdin"
<< endl;
ofstream file(FILE_PATH);
file.close();
file.open(FILE_PATH, ios_base::app);
while (getline(cin, line)) {
if (line == "EOH")
break;
file << line << endl;
}
return 0;
}
#+end_src
#+begin_src text
Running program till the string "EOH" is received via stdin
i have a
flayed dismembered
corpse in front of my
lawn
EOH
#+end_src