C++ MyInteger 类实现:整数操作与转换

本文将介绍如何使用 C++ 设计一个名为 MyInteger 的类,该类可以对整数进行各种操作,例如判断奇偶性、素数、比较值和字符串转换。

MyInteger 类设计

MyInteger 类包含以下成员:

  • 数据域:

    • value: 一个 int 型数据域,保存此对象表示的 int 型值。
  • 构造函数:

    • MyInteger(int value): 用指定的 int 型值创建一个 MyInteger 对象。
  • 获取函数:

    • get(): 返回 int 型值的 get 函数。
  • 只读函数:

    • isEven(): 在整数为偶数的情况下返回真。
    • isOdd(): 在整数为奇数的情况下返回真。
    • isPrime(): 在整数为素数的情况下返回真。
  • 静态函数:

    • isEven(int): 在给定整数为偶数的情况下返回真。
    • isOdd(int): 在给定整数为奇数的情况下返回真。
    • isPrime(int): 在给定整数为素数的情况下返回真。
    • isEven(const MyInteger&): 在给定对象表示的整数为偶数的情况下返回真。
    • isOdd(const MyInteger&): 在给定对象表示的整数为奇数的情况下返回真。
    • isPrime(const MyInteger&): 在给定对象表示的整数为素数的情况下返回真。
  • 只读函数:

    • equals(int): 在本对象表示的整数值等于给定值的情况下返回真。
    • equals(const MyInteger&): 在本对象表示的整数值等于给定对象表示的整数值的情况下返回真。
  • 静态函数:

    • parseInt(const string&): 将一个字符串转换为一个 int 型值。

MyInteger 类实现

#include <iostream>
#include <string>
#include <cmath>

using namespace std;

class MyInteger
{
public:
    MyInteger(int value) // 构造函数
    {
        this->value = value;
    }

    int get() const // 返回当前对象的整数值
    {
        return value;
    }

    bool isEven() const // 判断当前对象的整数值是否为偶数
    {
        return value % 2 == 0;
    }

    bool isOdd() const // 判断当前对象的整数值是否为奇数
    {
        return value % 2 != 0;
    }

    bool isPrime() const // 判断当前对象的整数值是否为素数
    {
        if (value <= 1)
        {
            return false;
        }
        for (int i = 2; i <= sqrt(value); i++)
        {
            if (value % i == 0)
            {
                return false;
            }
        }
        return true;
    }

    static bool isEven(int value) // 判断给定整数值是否为偶数
    {
        return value % 2 == 0;
    }

    static bool isOdd(int value) // 判断给定整数值是否为奇数
    {
        return value % 2 != 0;
    }

    static bool isPrime(int value) // 判断给定整数值是否为素数
    {
        if (value <= 1)
        {
            return false;
        }
        for (int i = 2; i <= sqrt(value); i++)
        {
            if (value % i == 0)
            {
                return false;
            }
        }
        return true;
    }

    static bool isEven(const MyInteger& obj) // 判断给定对象的整数值是否为偶数
    {
        return obj.isEven();
    }

    static bool isOdd(const MyInteger& obj) // 判断给定对象的整数值是否为奇数
    {
        return obj.isOdd();
    }

    static bool isPrime(const MyInteger& obj) // 判断给定对象的整数值是否为素数
    {
        return obj.isPrime();
    }

    bool equals(int value) const // 判断当前对象的整数值是否等于给定值
    {
        return this->value == value;
    }

    bool equals(const MyInteger& obj) const // 判断当前对象的整数值是否等于给定对象的整数值
    {
        return this->value == obj.value;
    }

    static int parseInt(const string& str) // 将字符串转换为整数值
    {
        int value = 0;
        for (char c : str)
        {
            if (isdigit(c))
            {
                value = value * 10 + (c - '0');
            }
        }
        return value;
    }

private:
    int value; // 当前对象所代表的整数值
};

int main()
{
    MyInteger num1(5);
    cout << 'num1 = ' << num1.get() << endl;
    cout << 'isEven(num1) = ' << MyInteger::isEven(num1) << endl;
    cout << 'isOdd(num1) = ' << MyInteger::isOdd(num1) << endl;
    cout << 'isPrime(num1) = ' << MyInteger::isPrime(num1) << endl;

    MyInteger num2(6);
    cout << 'num2 = ' << num2.get() << endl;
    cout << 'isEven(num2) = ' << MyInteger::isEven(num2) << endl;
    cout << 'isOdd(num2) = ' << MyInteger::isOdd(num2) << endl;
    cout << 'isPrime(num2) = ' << MyInteger::isPrime(num2) << endl;

    cout << 'num1 equals 5? ' << num1.equals(5) << endl;
    cout << 'num1 equals num2? ' << num1.equals(num2) << endl;

    string str = '12345';
    int value = MyInteger::parseInt(str);
    cout << 'parseInt('' << str << '') = ' << value << endl;

    return 0;
}

测试用例

以上代码包含一个 main() 函数,用于测试 MyInteger 类中的所有函数。程序输出如下:

num1 = 5
isEven(num1) = 0
isOdd(num1) = 1
isPrime(num1) = 1
num2 = 6
isEven(num2) = 1
isOdd(num2) = 0
isPrime(num2) = 0
num1 equals 5? 1
num1 equals num2? 0
parseInt('12345') = 12345

总结

MyInteger 类是一个简单但实用的工具,可以方便地对整数进行各种操作。您可以根据需要扩展该类,添加更多功能,例如支持负数、浮点数、进制转换等。

C++ MyInteger 类实现:整数操作与转换

原文地址: https://www.cveoy.top/t/topic/m5Wj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录