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;    
}

免责声明:内容仅供参考,不保证正确性。


全栈后端 / C++教程 :
















Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.