aboutsummaryrefslogtreecommitdiffstats
path: root/labs/include/rcl_circuit.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'labs/include/rcl_circuit.hpp')
-rw-r--r--labs/include/rcl_circuit.hpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/labs/include/rcl_circuit.hpp b/labs/include/rcl_circuit.hpp
new file mode 100644
index 0000000..41e1e6d
--- /dev/null
+++ b/labs/include/rcl_circuit.hpp
@@ -0,0 +1,36 @@
+#ifndef RCL_CIRCUIT_HPP
+#define RCL_CIRCUIT_HPP
+
+#include <complex>
+
+class component {
+public:
+ virtual std::complex<double> get_impedance(double omega) =0;
+ virtual ~component() {}
+};
+
+class resistor : public component {
+public:
+ resistor(double r = 0);
+ std::complex<double> get_impedance(double omega);
+private:
+ double resistance;
+};
+
+class capacitor : public component {
+public:
+ capacitor(double c = 0);
+ std::complex<double> get_impedance(double omega);
+private:
+ double capacitance;
+};
+
+class inductor : public component {
+public:
+ inductor(double l = 0);
+ std::complex<double> get_impedance(double omega);
+private:
+ double inductance;
+};
+
+#endif