什么是C const模拟C const参考返回值

我确实写了一个类成员的c访问器

SomeClass const& x() const { return m_x; }

似乎c#中这种唯一的保护是使用私有(或未定义)集定义属性.但是这只能防止分配而不是操纵某些阶级状态.

旁注:c允许通过const指针删除m_x – 恕我直言,这简直是对标准体的疏忽.

最佳答案 C中的const不能防止任何事情,您可以毫无问题地将其丢弃.

虽然C#没有它的等价物,但你可以(并且通常应该)创建真正的不可变类.这将constness的负担放在它所属的对象上,并且你无法做任何事情来“抛弃它”(禁止反射).

点赞