递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 1889|回复: 5
打印 上一主题 下一主题

[视窗] 对象和对象参与计算这种如何封装

[复制链接]

220

主题

1665

帖子

6948

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
6948
QQ
跳转到指定楼层
楼主
发表于 2024-12-2 16:22:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式



在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. }
复制代码







火山视窗封装视频教程
回复

使用道具 举报

75

主题

1118

帖子

5044

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5044
沙发
发表于 2024-12-2 16:44:51 | 只看该作者
本帖最后由 hcwanz 于 2024-12-2 16:51 编辑

c=a.加(b)

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

使用道具 举报

220

主题

1665

帖子

6948

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
6948
QQ
板凳
 楼主| 发表于 2024-12-2 16:55:44 | 只看该作者
本帖最后由 沉默流星 于 2024-12-2 16:57 编辑
hcwanz 发表于 2024-12-2 16:44
c=a.加(b)

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

整成 本地整数基本类型,的确可以,但要是实现的成员属性是小数类型的呢,封装成这样小数计算能否保证精度问题。
火山视窗封装视频教程
回复

使用道具 举报

75

主题

1118

帖子

5044

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5044
地板
发表于 2024-12-2 17:04:52 | 只看该作者
本帖最后由 hcwanz 于 2024-12-2 17:10 编辑

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

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


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

使用道具 举报

452

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
42682
5#
发表于 2024-12-2 17:39:52 | 只看该作者
沉默流星 发表于 2024-12-2 16:55
整成 本地整数基本类型,的确可以,但要是实现的成员属性是小数类型的呢,封装成这样小数计算能否保证精度 ...

只有 本地基本数据类型 可以进行运算,其它的都不行。火山不支持重载操作符的。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

75

主题

1118

帖子

5044

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

难说:噜阿噜
至少类似`文本型`的类, 是可以实现了


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-4-6 02:22 , Processed in 0.096089 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表