C++ union与Delphi record 转化

本文介绍了如何将Delphi中的record类型转换为C++中的struct,特别是对于包含枚举类型的记录,以及如何保持访问和赋值的一致性。通过示例展示了如何在C++中实现与Delphi类似定义的TVector2d, TPoint2d, TBox2d和Box2d。" 79140308,7410632,使用Bootstrap构建OPPO官网商城,"['前端开发', 'HTML', 'CSS', 'Bootstrap', 'Python']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

朋友由Delphi语言转到C++语言后有一些不习惯,他不知道他原来用Delphi写的程序怎么能很好的转到C++,还说C++没有Delphi表达方便,没有提供Delphi这样方便的书写方式,比如:

 TVector2d= record
    X: Double;
    Y: Double;

 end;

Vector2d = TVector2d;

TPoint2d = TVector2d;


PBox2d = ^TBox2d

TBox2d = record
    case Integer of
      0: (StartPt, EndPt: TPoint2d);
      1: (MinX, MinY, MaxX, MaxY: Double);
end;

Box2d  = TBox2d;

(Delphi中是上面这样定义的,他不知道在C++中怎么定义),我一看,这种表达方式,在C++中是可以转化的呀,看来他还是转到C++时间太短了。C++代码可以写成:

typedef struct CVector2d
{
    double x;
   double y;
}Vector2d, Point2d;

typedef union CBox2d
{
struct
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值