我试图理解类中私有const的用法。我的理解是私有const用于在类中创建一些常量,而static用于创建一个副本。
最初,我的代码使用了pi,它的数据类型是float。所以,我尝试将float更改为int因为我读取const static只允许类中的int类型。
#include <iostream>
class MyExample
{
private:
static const int x;
};
int main(void)
{
int const MyExample::x = 3;
std::cout<<"x value is "<<MyExample::x<<std::endl;
return 0;
}
编译 -
$g++ -std=c++14 test.cpp
test.cpp: In function ‘int main()’:
test.cpp:12:27: error: qualified-id in declaration before ‘=’ token
int const MyExample::x = 3;
我知道移动行“int const MyExample :: x = 3;”从main()到outside,如果我也删除私有,则删除错误。
MyExample::x
是一个qualified-id,你把它放在=
令牌之前的声明中。在块范围内不允许这样做。
因为变量'x'是私有访问修饰符,这意味着变量x仅在类中使用。所以你不能在main函数中使用该变量。
并且有2个建议。
首先,制作getter,setter方法。
第二,更改为公共访问修饰符。
谢谢