【发布时间】:2016-04-19 22:24:01
【问题描述】:
D 编程语言参考在Declarations 和Type Qualifiers 部分显示了两个示例,因此这些都是可能的:
struct S
{
int method() const
{
//const stuff
}
}
struct S
{
int method() immutable
{
//immutable stuff
}
}
来自文档:
const成员函数是不允许通过成员函数的this引用改变对象任何部分的函数。
还有:
不可变成员函数保证 this 引用所引用的对象和任何东西都是不可变的。
我找到了this question,但所有答案都是关于数据类型,而不是存储类。 D const FAQ 也是如此,尽管读起来很有趣。
那么上面的两个定义有什么区别呢?是否有表达式可以代替//const stuff 并且合法但不是//immutable stuff?
【问题讨论】:
标签: constants d immutability member-functions storage-class-specifier