对象和对象参与计算这种如何封装
static/image/hrline/1.gif
在C++当中可以重载操作符,让对象之间进行计算,说白了就是计算的对象底层的成员属性。
#pragma once
class Integer {
public:
int value;
public:
// 构造函数
Integer() {};
Integer(int v)
{
value = v;
}
Integer operator+(const Integer& other) const;
};#include "重载操作符.h"
Integer Integer::operator+(const Integer& other) const
{
return Integer(this->value + other.value);
}
static/image/hrline/1.gif
本帖最后由 hcwanz 于 2024-12-2 16:51 编辑
c=a.加(b)
或者把演示整数类封为本地基本数据类型, 方法就参考文本型, 弄成c语言风格 本帖最后由 沉默流星 于 2024-12-2 16:57 编辑
hcwanz 发表于 2024-12-2 16:44
c=a.加(b)
或者把演示整数类封为本地基本数据类型, 方法就参考文本型, 弄成c语言风格 ...
整成 本地整数基本类型,的确可以,但要是实现的成员属性是小数类型的呢,封装成这样小数计算能否保证精度问题。 本帖最后由 hcwanz 于 2024-12-2 17:10 编辑
我只能给出一个理论上的方法
通过在c++层面定义隐式转换函数, 可以让下图保留精度.
应该没法更简单了.
最好还是别想着玩花的了, 老老实实封成普通的方法吧
沉默流星 发表于 2024-12-2 16:55
整成 本地整数基本类型,的确可以,但要是实现的成员属性是小数类型的呢,封装成这样小数计算能否保证精度 ...
只有 本地基本数据类型 可以进行运算,其它的都不行。火山不支持重载操作符的。
本帖最后由 hcwanz 于 2024-12-2 18:33 编辑
创世魂 发表于 2024-12-2 17:39
只有 本地基本数据类型 可以进行运算,其它的都不行。火山不支持重载操作符的。
...
难说:噜阿噜
至少类似`文本型`的类, 是可以实现了
页:
[1]