Continuing the discussion from Tổng Hợp C,C++: Hỗ trợ giải tất cả các bài tập C & C++:
Tạm thời post thế này đã, có gì sửa sau. @oanh Có gì thắc mắc cứ hỏi ở đây, tối a có thời gian sẽ lên giải thích. Giờ bận tí.
#include <iostream>
template<class T>
class Number
{
private:
    T m_data;
public:
    Number(void) : m_data( T() )
    {}
    Number(const T value) : m_data ( value )
    {}
    ~Number(void)
    {}
    Number<T>& operator =(const Number<T> & value)
    {
        m_data = value.m_data;
        return *this;
    }
    Number<T> operator +(const Number<T> & value )
    {
        return m_data + value.m_data;
    }
    Number<T> operator -(const Number<T> & value )
    {
        return m_data - value.m_data;
    }
    Number<T> operator *(const Number<T> & value )
    {
        return m_data * value.m_data;
    }
    Number<T> operator /(const Number<T> & value )
    {
        return m_data / value.m_data;
    }
    Number<T>& operator+=(const Number<T> &);
    friend std::ostream& operator<<(std::ostream& out, const Number<T>& value)
    {
        return out << value.m_data;
    }
    friend std::istream& operator>>(std::istream& in, Number<T>& value)
    {
        return in >> value.m_data;
    }
    bool operator==(const Number<T> & value)
    {
        return m_data == value.m_data;
    }
};
// Vi du dinh nghia o ngoai class
template <class T>
Number<T>& Number<T>::operator+=(const Number<T>& value)
{
    m_data = m_data + value.m_data;
    return *this;
}
int main()
{
    // Number(void)
    Number<int> num1;
    std::cout << "Number(void): num1 = " << num1 << std::endl;
    // Number(const T value)
    Number<int> num2(3);
    std::cout << "Number(const T value): num2 = " << num2 << std::endl;
    // Number<T>& operator =
    num1 = 5;
    std::cout << "Number<T>& operator =: num1 = " << num1 << std::endl;
    // Number<T> operator +
    std::cout << "Number<T>& operator +: num1 + num2 = " << num1 + num2 << std::endl;
    // Number<T> operator -
    std::cout << "Number<T>& operator -: num1 - num2 = " << num1 - num2 << std::endl;
    // Number<T> operator *
    std::cout << "Number<T>& operator -: num1 * num2 = " << num1 * num2 << std::endl;
    // Number<T> operator /
    std::cout << "Number<T>& operator -: num1 / num2 = " << num1 / num2 << std::endl;
    // Number<T> operator +=
    num1 += num2;
    std::cout << "Number<T>& operator -: num1 += num2 => num1 = " << num1 << std::endl;
    // Number<T> operator ==
    if (num1 == num2)
        std::cout << "num1 == num2" << std::endl;
    else
        std::cout << "num1 != num2" << std::endl;
    // operator>>
    std::cout << "Nhap vao num3: ";
    Number<int> num3;
    std::cin >> num3;
    std::cout << "num3 = " << num3 << std::endl;
    return 0;
}
 
      
     83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?
    83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?