#pragma once //Caculate.h template<typename T> class Caculate { public: Caculate() = default; Caculate(const T& a, const T& b) :first(a), second(b){} Caculate(const Caculate& c); Caculate(Caculate &&)noexcept; Caculate& operator =(const Caculate&); Caculate& operator =(Caculate&&)noexcept; ~Caculate() = default; public: T sum(); T minus(); T multiplies(); T divides(); private: T first; T second; }; template<typename T> Caculate<T>::Caculate(const Caculate& c):first(c.first),second(c.second) { } template<typename T> Caculate<T>::Caculate(Caculate && c)noexcept : first(std::move(c.first)), second(std::move(c.second)) { } template<typename T> Caculate<T>& Caculate<T>::operator =(const Caculate& c) { first = c.first; second = c.second; return *this; } template<typename T> Caculate<T>& Caculate<T>::operator =(Caculate && c)noexcept { first = std::move(c.first); second = std::move(c.second); return *this; } template<typename T> T Caculate<T>::sum() { return (first + second); } template<typename T> T Caculate<T>::minus() { return (first - second); } template<typename T> T Caculate<T>::multiplies() { return (first * second); } template<typename T> T Caculate<T>::divides() { if (second == 0) exit(EXIT_FAILURE); else return (first / second);
}
#include<iostream> #include"Caculate.h" using namespace std; int main() { Caculate<double> a(1.23, 34.444); cout << a.divides() << endl; cout << a.minus() << endl; cout << a.sum() << endl; cout << a.multiplies() << endl; system("pause"); return 0; }
转载请注明原文地址: https://ju.6miu.com/read-668587.html