#include "Atomkern.h" #include Atomkern::Atomkern(std::string symbol, unsigned int masseZ, unsigned int ordnungZ) : elementsymbol(symbol), massen_zahl(masseZ), ordnungs_zahl(ordnungZ) {} Atomkern Atomkern::NEUTRON = Atomkern("Neutron", 1, 0); Atomkern Atomkern::PROTON = Atomkern("Proton", 1, 1); std::string Atomkern::symbol() const { return elementsymbol; } unsigned int Atomkern::ordnungszahl() const { return ordnungs_zahl; } unsigned int Atomkern::massenzahl() const { return massen_zahl; } Atomkern &Atomkern::operator+=(const Atomkern &atom1) { massen_zahl += atom1.massenzahl(); ordnungs_zahl += atom1.massenzahl(); return *this; } Atomkern Atomkern::operator-(const Atomkern &atom1) { return Atomkern(symbol(), massen_zahl - atom1.massenzahl(), ordnungs_zahl - atom1.ordnungszahl()); } Atomkern Atomkern::operator-=(const Atomkern &atom1) { massen_zahl -= atom1.massenzahl(); ordnungs_zahl -= atom1.massenzahl(); return *this; } bool Atomkern::operator==(Atomkern const atom2) { return ordnungszahl() == atom2.ordnungszahl() && massenzahl() == atom2.massenzahl(); } Atomkern operator+(const Atomkern &atom1, const Atomkern &atom2) { return Atomkern(atom1.symbol(), atom1.massenzahl() + atom2.massenzahl(), atom1.ordnungszahl() + atom2.ordnungszahl()); } Atomkern operator*(int i, const Atomkern &atom1) { return Atomkern(atom1.symbol(), atom1.massenzahl() * i, atom1.ordnungszahl() * i); } std::ostream &operator<<(std::ostream &os, const Atomkern &atom) { os << "Elementsymbol: " << atom.symbol() << ", Massenzahl: " << atom.massenzahl() << ", Ordnungszahl: " << atom.ordnungszahl(); return os; }