diff options
| author | Syndamia <kamen@syndamia.com> | 2024-05-10 11:33:50 +0300 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2024-05-10 11:33:50 +0300 |
| commit | 8dd9b39fa54a91030cdd5fe71973f78f7e8089e0 (patch) | |
| tree | 1c08da5ccfb2ba78db7555ea79ff61a39a9b4c20 /week12/Exercise3/Pager.cpp | |
| parent | 66a5cdf79a8324019d9d34055ad212ad52504e3c (diff) | |
| download | oop-2023-solutions-8dd9b39fa54a91030cdd5fe71973f78f7e8089e0.tar oop-2023-solutions-8dd9b39fa54a91030cdd5fe71973f78f7e8089e0.tar.gz oop-2023-solutions-8dd9b39fa54a91030cdd5fe71973f78f7e8089e0.zip | |
[w12] Solved exercises 1 and 3
Diffstat (limited to 'week12/Exercise3/Pager.cpp')
| -rw-r--r-- | week12/Exercise3/Pager.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/week12/Exercise3/Pager.cpp b/week12/Exercise3/Pager.cpp new file mode 100644 index 0000000..18beb4b --- /dev/null +++ b/week12/Exercise3/Pager.cpp @@ -0,0 +1,59 @@ +#include "Pager.h" +#include <iostream> +#include <cstring> +#include <fstream> + +void Pager::free() { + delete[] fileName; +} + +void Pager::copyFrom(const Pager& other) { + this->fileName = new char[strlen(other.fileName) + 1]; + strcpy(this->fileName, other.fileName); +} + +Pager::Pager() { + this->fileName = nullptr; +} + +Pager::~Pager() { + free(); +} + +Pager::Pager(const Pager& other) { + copyFrom(other); +} + +Pager& Pager::operator=(const Pager& other) { + if (this != &other) { + free(); + copyFrom(other); + } + return *this; +} + +Pager::Pager(Pager&& other) { + this->fileName = other.fileName; + other.fileName = nullptr; +} + +Pager& Pager::operator=(Pager&& other) { + if (this != &other) { + free(); + + this->fileName = other.fileName; + other.fileName = nullptr; + } + return *this; +} + +void Pager::Show() { + std::ofstream outFile(fileName); + if (!outFile.is_open()) { + throw "Coudldn't open file!"; + } + + outFile << textMessage << std::endl; + + outFile.close(); +} |
