锁定状态是很棒的。在C#中,您可以通过将字段声明为readonly
来确保字段在构造函数完成后不会更改其值/引用。
class Foo
{
private readonly string _foo;
public Foo() {
_foo = "Unchangeable";
}
public void ChangeIt() {
_foo = "Darn"; // compiler error
}
}
我能用C++做同样的事情吗?如果是这样的话,是怎么做的?若否,原因为何?
发布于 2011-05-17 00:39:28
那应该是const。请注意,这个关键字在不同的上下文中有几个不同的含义。
发布于 2011-05-17 00:41:53
class Foo
{
private:
const string _foo;
public:
Foo() : _foo("Unchangeable")
{
}
void ChangeIt()
{
_foo = "Darn"; // compiler error
}
};
发布于 2011-05-17 00:40:48
没有直接的事情。您可以使用带有公共getter (但没有setter)的私有字段。但这只适用于调用您的代码的其他类。Foo
始终拥有对其成员的完全访问权限。但是,因为您是Foo
的实现者,所以这不是真正的问题。
https://stackoverflow.com/questions/6020506
复制相似问题