aboutsummaryrefslogtreecommitdiff
path: root/C++.wiki
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-02-23 17:09:41 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2022-02-23 17:09:41 +0100
commit377cc5c1d2e0d002cf53e1d23230ff2a19e8a7f3 (patch)
tree44e38f80124d3590bb32fd31601d87ead012d7b0 /C++.wiki
parentons 23 feb 2022 17:09:36 CET (diff)
parentfre 18 feb 2022 19:34:12 CET (diff)
downloadwiki-public-377cc5c1d2e0d002cf53e1d23230ff2a19e8a7f3.tar.gz
wiki-public-377cc5c1d2e0d002cf53e1d23230ff2a19e8a7f3.tar.xz
Merge branch 'master' of git.hornquist.se:git/wiki-public
Diffstat (limited to 'C++.wiki')
-rw-r--r--C++.wiki56
1 files changed, 55 insertions, 1 deletions
diff --git a/C++.wiki b/C++.wiki
index b3dec5e..c12d045 100644
--- a/C++.wiki
+++ b/C++.wiki
@@ -1,6 +1,7 @@
= Contents =
- [[#C++ Examples|C++ Examples]]
- - [[#C++ Examples#Friend operator|Friend operator]]
+ - [[#C++ Examples#Friend operator|Friend operator]]
+ - [[#C++ Examples#Time Header|Time Header]]
= C++ Examples =
@@ -34,3 +35,56 @@ int main () {
std::cout << t << std::endl;
}
}}}
+
+== Time Header ==
+
+{{{c++
+#pragma once
+
+#include <ostream>
+
+enum timetype {
+ _day, _hour, _minute, _second
+};
+
+class Time {
+private:
+
+ int _days = 0;
+ int _hours = 0;
+ int _minutes = 0;
+ int _seconds = 0;
+
+public:
+ Time() { };
+ Time(int n, timetype type);
+
+ int to_seconds() const;
+
+ friend std::ostream& operator<<(std::ostream&, const Time&);
+ friend Time operator * (int, Time);
+
+ Time operator + (const Time&);
+ Time operator , (const Time& t) { return *this + t; }
+ Time operator && (const Time& t) { return *this + t; }
+};
+
+#define days * Time(1, _day)
+#define day days
+#define hours * Time(1, _hour)
+#define hour hours
+#define minutes * Time(1, _minute)
+#define minute minutes
+#define seconds * Time(1, _second)
+#define second seconds
+
+int main() {
+ std::cout
+ << 5 days << std::endl
+ << 7 minutes << std::endl
+ << (5 days and 3 seconds) << std::endl
+ << (7 days, 7 minutes and 3 seconds) << std::endl
+ << (9 hours and 1 second) << std::endl
+ ;
+}
+}}}