c++ - 初始化嵌套结构会在 C++ 中引发错误
问题描述
我正在学习 C++ 中的结构。执行代码时出现以下错误:
错误:CompData 的初始化程序太多。
如果有人能指出错误,那就太好了。
代码:
#include <iostream>
#include <string>
struct EmpData
{
std::string name;
int age;
double salary;
};
struct DepartmentData
{
std::string departmentName;
struct EmpData;
};
struct CompData
{
std::string compName;
struct DepartmentData;
};
int main()
{
CompData DeltaF
{
"DeltaF",
{
"Product Development",
{
"Steve", 35, 1223
}
}
};
}
解决方案
这里:
struct DepartmentData
{
std::string departmentName;
struct EmpData;
};
你声明一个结构EmpData
,全称是DepartmentData::EmpData
。EmpData
它与您在上面声明和定义的类型不同。如果你想DepartmentData
拥有一个类型的成员,EmpData
你可以删除struct
并需要给它一个名字:
struct DepartmentData
{
std::string departmentName;
EmpData empData; // member of type EmpData called empData
};
的DepartmentData
成员也一样CompData
。如果你修复了这些,你的代码编译不会出错。
推荐阅读
- java - 如何禁用 JavaFX 中的最大化选项?
- scala - Spark Scala 中的动态映射语句
- java - FOP 2.3:fo:external-graphic 的问题
- angular - 未调用 canDeActivate 函数
- html - 为什么 YouTube Player API 显示“此视频不可用”。播放某些视频时?
- c++ - 可以在光线追踪器上查看我的汽车模型
- php - Laravel 5.4:VerifyCsrfToken.php 第 68 行中的 TokenMismatchException
- visual-studio-code - Visual Studio Code - 在搜索结果中包含上下文
- visual-studio-code - Visual Studio Code:使用多个任务运行 preLaunchTask
- javascript - Javascript循环遍历变量