124 lines
2.2 KiB
Org Mode
124 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 read a set of lines from the keyboard and to store it on a specified file.
|
|
|
|
#+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;
|
|
}
|
|
|
|
file.close();
|
|
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
|