C++/CLI学习笔记12(快速打通c++与c#相互调用的桥梁)

本文介绍了在C++/CLI中如何使用类级常量(如`literal`关键字)和实例常量(`initonly`关键字),以及它们在类定义中的应用场景和特性。着重强调了类级常量作为编译时常量的性质和实例常量在构造器中的设置规则。
摘要由CSDN通过智能技术生成

在类中便用常量

我们经常需要在类中使用常量成员,这种成员的值在执行期间不能改变。有下面两种常量。

1:类的每个对象都不变的常量。例如,car类可包含一个numberOfwheels成员,它的值对于card的所有实例来说都是4。这称为“类级常量”。

2:不同对象会发生变化的常量。例如,BankAccount对象包含一个账号,它对于不同实例来说是不同的,但一经设置就不能变动。这称为“实例常量”。

1:使用类级常量

类级常量代表在类的所有实例中都不变的值。拿我们的CreditAccount例子来说,假定信用卡有一个品牌名称,比如“Super Platinum Card”(超级白金卡),该名称适合同类型的所有卡片,所以它逻辑上从属于类而不是实例。进一步假定信用卡名称不会发生改变,所以适合把它设为类级常量。

用literal关键字创建类级常量,如下所示:

ref class MyClass{

    public:
       literal String^ name="demo1";
}

每个literal都必须有一个初始值,而且必须是编译时能计算的值。换言之,它不能依赖于运行时才能确定的东西。

由于name是常量,所以可以放心地设为公共,因为任何人都修改不了它。可声明内建类型、ref 类型和值类型的literal。
注意:标准C++允许使用static const成员表示类级常量。虽然C++/CLI也支持这样写,但如果类是通过一个#using语句来访问的,这种常量就不被认为是编译时常量。所以,推荐尽量使用literal,这种成员的行为保证是符合预期的。

2:使用实例常量

用initonly关键字将数据成员标记为实例常量。这种数据成员的值在创建实例时由构造器设置,之后不能修改。

ref class MyClass{

    public:
        initonly long accountNumber;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rains卍Soft

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值