Website Summary Files Commits Branches @commit @diff @stats
path: root / week10 / Exercise10
diff options
context:
space:
mode:
Commit75cff007b4896eed49b758be0959668673ae1bf3 (patch)
Author
 Syndamia <kamen@syndamia.com>
2024-05-08 10:07:57 +0300
Committer
 Syndamia <kamen@syndamia.com>
2024-05-08 10:07:57 +0300
Files6af017d6047c78bce05af166fdbe85cae40692b5 /week10/Exercise10
oop-2023-solutions-75cff007b4896eed49b758be0959668673ae1bf3.tar
oop-2023-solutions-75cff007b4896eed49b758be0959668673ae1bf3.tar.gz
oop-2023-solutions-75cff007b4896eed49b758be0959668673ae1bf3.zip
Parent6dd52a7c9d8db3e8b14494ae99e8b9f3b76d1262 (diff)
[w10] Fixed mistakes in certain exercises
2 files changed, 8 insertions, 4 deletions
-rw-r--r--week10/Exercise10/ShowableString.cpp10
-rw-r--r--week10/Exercise10/ShowableString.h2
diff --git a/week10/Exercise10/ShowableString.cpp b/week10/Exercise10/ShowableString.cpp
index 1231a9c..09dbd51 100644
--- a/week10/Exercise10/ShowableString.cpp
+++ b/week10/Exercise10/ShowableString.cpp
@@ -1,9 +1,13 @@
#include "ShowableString.h"
std::ostream& operator<<(std::ostream& ostr, const ShowableString& str) {
- return ostr << str;
+ return ostr << str.str;
}
-std::istream& operator>>(std::istream& istr, const ShowableString& str) {
- return istr >> str; // Лошо!
+std::istream& operator>>(std::istream& istr, ShowableString& str) {
+ unsigned size;
+ istr >> size;
+ str.free();
+ str.str = new char[size];
+ return istr >> str.str;
}
diff --git a/week10/Exercise10/ShowableString.h b/week10/Exercise10/ShowableString.h
index ff46f6c..6bf02e6 100644
--- a/week10/Exercise10/ShowableString.h
+++ b/week10/Exercise10/ShowableString.h
@@ -5,5 +5,5 @@
class ShowableString : ModifiableString {
public:
friend std::ostream& operator<<(std::ostream& ostr, const ShowableString& str);
- friend std::istream& operator>>(std::istream& istr, const ShowableString& str);
+ friend std::istream& operator>>(std::istream& istr, ShowableString& str);
};