gpt4 book ai didi

c++ - 如何在 C++ 中定义最终变量(可变常量)?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:32 25 4
gpt4 key购买 nike

如何在 C++ 中定义一个指向可变对象的常量?

如果我声明

static const CMyClass* IMPL;

并赋值

const CMyClass* CSomeClass::IMPL = new CMyClass;

然后我只能在对象上调用 const 函数。它的内部是锁着的。这不是我想要的。

如果我离开 const 限定符,我可以重新分配指针 IMPL,因此它不再作为常量受到保护,它应该是。 final 似乎只适用于 C++ 中的函数。在 C++ 中是否有等同于 Java 的 final 变量?

最佳答案

您必须将 const 放在声明中的正确位置。规则是:const 适用于紧靠左侧的事物,除非它本身位于左边缘,当它应用于右侧时。

因此,这两个是指向常量整数的(可变)指针:

const int * p;
int const * p;

这是一个指向(可变)整数的常量指针:

int * const p;

这些是指向常量整数的常量指针:

const int * const p;
int const * const p;

关于c++ - 如何在 C++ 中定义最终变量(可变常量)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39411149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com