相关疑难解决方法(0)

除了允许变量被const函数修改之外,'mutable'关键字是否有任何其他用途?

前段时间我遇到了一些用mutable关键字标记类的成员变量的代码.据我所知,它只是允许您修改const方法中的变量:

class Foo  
{  
private:  
    mutable bool done_;  
public:  
    void doSomething() const { ...; done_ = true; }  
};
Run Code Online (Sandbox Code Playgroud)

这是这个关键字的唯一用途,还是有更多的东西比它的眼睛?我已经在一个类中使用了这个技术,标记为一个boost::mutex可变的允许const函数为了线程安全的原因锁定它,但是,说实话,这感觉有点像黑客.

c++ mutable keyword

511
推荐指数
12
解决办法
21万
查看次数

为什么const关键字不在Java中使用?

可能重复:
为什么Java中没有Constant关键字?

为什么const关键字不在Java中使用?
你能看到在Java语法中使用一些传递const或不可变关键字的缺点,或者为什么选择常见的繁琐方法

你能看到关闭请求的理由,Sun是否提供了任何解释?

java

23
推荐指数
3
解决办法
4万
查看次数

什么是"const"关键字的目的?

为什么constJava中的保留关键字却没有功能?如果他们决定使用final而不是有什么意义const呢?

java

7
推荐指数
2
解决办法
1644
查看次数

使用Java关键字const

可能重复:
为什么Java中没有Constant关键字?

我最近开始用Java开发,我想知道为什么关键字const没有实现,你必须在类中使用相当长的常量定义:

protected static final String VALIDATION_ERROR = "validationError";
Run Code Online (Sandbox Code Playgroud)

而不是预期的方式

const VALIDATION_ERROR = "validationError"
Run Code Online (Sandbox Code Playgroud)

是否有人可以指出我为什么你必须使用(或者没有在当前语法中使用它)前者而不是后者,因为后者假设前者

java

5
推荐指数
1
解决办法
252
查看次数

是否有技术原因阻止 Java 中的 final 像 C++ 中的 const 一样严格?

在 C++ 中,可以使用const关键字来指示指向数据的指针或数据本身是常量(或两者),即

const SomeClass* p; // 数据是常量

或者

SomeClass* const p; // 指针是常量

或者

const SomeClass* const p; // 两者都是常数

在 Java 中,final 关键字的限制要大得多:

final SomeClass o; // 引用是常量,对象是可以改变的

我一直想知道为什么 Java 在这方面比 C++ 更有限。这是由语言设计者做出的决定(可能也有其他决定),还是有技术原因阻止它?

Java 对象由垃圾收集器管理这一事实在这里有影响吗?

c++ java final constants

4
推荐指数
1
解决办法
98
查看次数

为什么用Java创建'const'关键字?

我注意到constJava 中有关键字.它让我想起那里的事情staticfinal变数.

但是为什么没有人真正使用它而创建呢?

java const keyword

1
推荐指数
1
解决办法
1041
查看次数

在Java中,何时使用const而不是final?

看来这两个是相同的.对于只读变量,是否可以提高性能?

const ant;
final ant;
Run Code Online (Sandbox Code Playgroud)

java final const

-2
推荐指数
1
解决办法
228
查看次数

标签 统计

java ×6

c++ ×2

const ×2

final ×2

keyword ×2

constants ×1

mutable ×1