首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C#的只读字段修饰符的C++等价物是什么?

C#的只读字段修饰符的C++等价物是什么?
EN

Stack Overflow用户
提问于 2011-05-17 00:37:23
回答 7查看 21.8K关注 0票数 29

锁定状态是很棒的。在C#中,您可以通过将字段声明为readonly来确保字段在构造函数完成后不会更改其值/引用。

代码语言:javascript
复制
class Foo
{
    private readonly string _foo;

    public Foo() {
        _foo = "Unchangeable";
    }

    public void ChangeIt() {
        _foo = "Darn";        // compiler error
    }
}

我能用C++做同样的事情吗?如果是这样的话,是怎么做的?若否,原因为何?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-05-17 00:39:28

那应该是const。请注意,这个关键字在不同的上下文中有几个不同的含义。

票数 20
EN

Stack Overflow用户

发布于 2011-05-17 00:41:53

代码语言:javascript
复制
class Foo
{
private:
    const string _foo;
public:
    Foo() : _foo("Unchangeable")
    {
    }
    void ChangeIt()
    {
        _foo = "Darn";        // compiler error
    }
};
票数 20
EN

Stack Overflow用户

发布于 2011-05-17 00:40:48

没有直接的事情。您可以使用带有公共getter (但没有setter)的私有字段。但这只适用于调用您的代码的其他类。Foo始终拥有对其成员的完全访问权限。但是,因为您是Foo的实现者,所以这不是真正的问题。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6020506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档