这个编译器错误意味着什么 - “C ++中'='token之前的声明中的qualified-id”?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这个编译器错误意味着什么 - “C ++中'='token之前的声明中的qualified-id”?相关的知识,希望对你有一定的参考价值。

我试图理解类中私有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方法。

第二,更改为公共访问修饰符。

谢谢

以上是关于这个编译器错误意味着什么 - “C ++中'='token之前的声明中的qualified-id”?的主要内容,如果未能解决你的问题,请参考以下文章

什么是类型安全?

参考 - 这个错误在 PHP 中意味着啥?

参考 - 这个错误在 PHP 中意味着啥?

参考 - 这个错误在 PHP 中意味着啥?

参考 - 这个错误在 PHP 中意味着啥?

参考 - 这个错误在 PHP 中意味着啥?