递归火山软件开发平台

标题: 对象和对象参与计算这种如何封装 [打印本页]

作者: 沉默流星    时间: 2024-12-2 16:22
标题: 对象和对象参与计算这种如何封装



在C++当中可以重载操作符,让对象之间进行计算,说白了就是计算的对象底层的成员属性。
  1. #pragma once
  2. class Integer {
  3. public:
  4.     int value;

  5. public:
  6.     // 构造函数
  7.     Integer() {};
  8.     Integer(int v)
  9.     {
  10.         value = v;
  11.     }

  12.     Integer operator+(const Integer& other) const;


  13. };
复制代码
  1. #include "重载操作符.h"




  2. Integer Integer::operator+(const Integer& other) const
  3. {
  4.     return Integer(this->value + other.value);
  5. }
复制代码
(, 下载次数: 218)


(, 下载次数: 217)

(, 下载次数: 223)


作者: hcwanz    时间: 2024-12-2 16:44
本帖最后由 hcwanz 于 2024-12-2 16:51 编辑

c=a.加(b)

或者把演示整数类封为本地基本数据类型, 方法就参考文本型, 弄成c语言风格
作者: 沉默流星    时间: 2024-12-2 16:55
本帖最后由 沉默流星 于 2024-12-2 16:57 编辑
hcwanz 发表于 2024-12-2 16:44
c=a.加(b)

或者把演示整数类封为本地基本数据类型, 方法就参考文本型, 弄成c语言风格 ...

整成 本地整数基本类型,的确可以,但要是实现的成员属性是小数类型的呢,封装成这样小数计算能否保证精度问题。
作者: hcwanz    时间: 2024-12-2 17:04
本帖最后由 hcwanz 于 2024-12-2 17:10 编辑

我只能给出一个理论上的方法

通过在c++层面定义隐式转换函数, 可以让下图保留精度.
应该没法更简单了.
(, 下载次数: 224)

最好还是别想着玩花的了, 老老实实封成普通的方法吧

作者: 创世魂    时间: 2024-12-2 17:39
沉默流星 发表于 2024-12-2 16:55
整成 本地整数基本类型,的确可以,但要是实现的成员属性是小数类型的呢,封装成这样小数计算能否保证精度 ...

只有 本地基本数据类型 可以进行运算,其它的都不行。火山不支持重载操作符的。

作者: hcwanz    时间: 2024-12-2 18:32
本帖最后由 hcwanz 于 2024-12-2 18:33 编辑
创世魂 发表于 2024-12-2 17:39
只有 本地基本数据类型 可以进行运算,其它的都不行。火山不支持重载操作符的。
...

难说:噜阿噜
至少类似`文本型`的类, 是可以实现了
(, 下载次数: 222)






欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4