VS编译报错 error C2512_ testStruct_ 没有合适的默认构造函数可用

⌚Time: 2022-06-02 13:37:54

👨‍💻Author: Jack Ge

VS编译时出错,结构体“testStruct”没有合适的默认构造函数可用

而程序代码类似于这种:


struct testStruct{

    int &a;

};

int main(){

    struct testStruct test;

    return 0;

}

原因就是引用变量在定义时必须同时赋值,而结构体中的引用变量没有为其赋值

对于类或者结构体中的引用类型的成员变量,需要在类的构造函数的初始化成员列表中对引用变量进行初始化,因此正确的代码应该是


struct testStruct{

    int &a;

    testStruct(int Param):a(Param){

    }

};

int main(){

    struct testStruct test(3);

    return 0;

}

这样编译就不会出错了