qualified-id in declaration before '=' token解决方法
qualified-id in declaration before '=' token的可能原因
在对C++类的静态成员被赋值或初始化的时候,C++的编译器弹出提示:qualified-id in declaration before '=' token。比如下方的这个实例代码。这主要是因为类的静态成员只属于类,而不是某个类的实例对象,因此,通常情况下,类的静态成员应当是在全局范围内赋值或初始化的,而不是应该是在主函数main()中定义初始化:
#include <iostream>
#include <string>
using namespace std;
// 定义一个Fruit类,并将类别category声明为static静态成员
class Fruit{
public:
string name;
Fruit(string n){
name = n;
};
static int price;
};
int main(){
Fruit banana("香蕉");
int Fruit::price = 1;
cout << Fruit::price << endl;
return 0;
}
解决方法
将类的静态成员的初始化代码放在main()主函数之外,一般在主函数之前,比如:
#include <iostream>
#include <string>
using namespace std;
// 定义一个Fruit类,并将类别category声明为static静态成员
class Fruit{
public:
string name;
Fruit(string n){
name = n;
};
static int price;
};
int Fruit::price = 1;
int main(){
Fruit banana("香蕉");
cout << Fruit::price << endl;
return 0;
}
免责声明:内容仅供参考,不保证正确性。