⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 register.cpp

📁 Beginning Visual C++ 6源码。Wrox。
💻 CPP
字号:
// Register.cpp: implementation of the CRegister class.
//
//////////////////////////////////////////////////////////////////////

#include "Register.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

// Constructor
CRegister::CRegister()
{
   Reset();                          // Initialize the data members
}

CRegister::~CRegister()
{

}

// Handle a decimal point
void CRegister::OnDecimalPoint()
{
   if(m_bBeginValue)           // Check if we are starting a new number
   {
      m_bBeginValue = 0;       // If so, set the indicator to zero
      m_Store = 0.0;           // and reset the value in the member m_Store
   }

   m_Factor = 1.0;             // Set the decimal point indicator
}

// Function to accept a keyed digit
void CRegister::OnDigit(const int& digit)
{
   if(m_bBeginValue)                   // Check if we are at the start of a number,
   {                                   // if so reset the CRegister components
      m_bBeginValue = 0;                   // Reset begin flag 
      m_Store = 0.0;                       // Reset storage
      m_Factor = 0.0;                      // Reset decimal point factor
   }

   if(m_Factor > 0.0)                      // Test decimal point factor,
   {                                       // positive value indicates decimals
      m_Factor *= 0.1;                     // Shift decimal place
      m_Store += digit*m_Factor;           // Add digit to storage
   }
   else
      m_Store = 10.0 * m_Store + digit;    // Add digit to storage
}

// Initialize the flag indicating a new number
void CRegister::SetBeginValue()
{
   m_bBeginValue = 1; 
}

// Reset the register
void CRegister::Reset()
{
   m_Store = 0.0;
   m_Factor = 0.0;
   m_bBeginValue = 1;
}

// Set the register value
void CRegister::Set(const double& value)
{
   m_Store = value;
}

// Get the register value
double CRegister::Get()
{
   return m_Store;
}

// += operation
CRegister& CRegister::operator+=(const CRegister& rhs)
{
   m_Store += rhs.m_Store;
   return *this;
}

// -= operation
CRegister& CRegister::operator-=(const CRegister& rhs)
{
   m_Store -= rhs.m_Store;
   return *this;
}

// *= operation
CRegister& CRegister::operator*=(const CRegister& rhs)
{
   m_Store *= rhs.m_Store;
   return *this;
}

// /= operation
CRegister& CRegister::operator/=(const CRegister& rhs)
{
   m_Store /= rhs.m_Store;
   return *this;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -