【发布时间】:2012-11-09 06:00:31
【问题描述】:
我正在尝试使用 const 关键字并试图从中获得有用的方法。
#include <iostream>
class A
{
public:
static const void modify(float& dummy)
{
dummy = 1.5f;
}
};
int main(int argc, char* argv[])
{
auto a = 49.5f;
A::modify(a);
std::cout << a << std::endl;
return(0);
}
此代码编译并运行,输出为1.5,我期待编译器出错,因为我有一个尝试修改参数值的 const 方法。
我在这里缺少什么?我如何设计不会修改参数值的方法?
【问题讨论】:
-
呵呵,我不知道你可以申请
const到void。 -
其实你的意思是 static const void modify(const float& dummy)?在这种情况下,你不能修改 dummy
-
@chris 我如何编写一个类似的方法来保持我的论点不变?为什么我没有收到警告?
-
嘿,看看我从 GCC 得到什么:警告:函数返回类型 [-Wignored-qualifiers] 上忽略类型限定符
-
@billz 是的,但我怀疑是否使用 const 作为方法本身的类型。