arrays - 构造函数似乎没有正确初始化我的数组
问题描述
我有一个名为 Student 的课程,其中包含基本信息。我有一个名为 Roster 的类,它是创建一个包含 5 个学生对象的数组。
例如,当我创建一个名册类型 (Roster classRoster;) 时。我的理解是会调用名册构造函数,使用 5 个学生对象创建 classRosterArray。当分配了 5 个学生对象时,学生构造函数将运行,用它们的构造函数信息填充五个学生对象——这并没有发生。显然我没有正确理解某些东西。任何帮助将不胜感激!
Roster::Roster()
{
classRosterArray = new Student*[rosterSize];
}
学生构造函数看起来像这样。
Student::Student()
{
studentID = "empty";
firstName = "empty";
lastName = "empty";
emailAddress = "empty";
studentAge = 0;
for (int i = 0; i < 3; i++)
{
daysToComplete[i] = 0;
}
studentDegree = NONE; //no degree loaded with blank constructor
}
我尝试运行一个基本的 printinfo 函数,我希望它打印 5 个版本的“空字段”,但我收到一条错误消息 - 抛出异常:读取访问冲突。 这是 0xCDCCDCD1。我相信哪个是未分配的内存?
如果我真的用数据(5 个学生)加载 classRosterArray,一切正常。我只是不明白为什么它不会在声明后立即打印 5 个空白点。
解决方案
推荐阅读
- tableau-api - 我可以在一个计算字段中进行多项计算吗?
- r - How to use Rvest to scrape data
- java - Java tomcat线程内存使用限制
- android - React Native 不使用 Android Studio 链接模块
- swift - 将模型保存到 Userdefaults 会使应用程序迅速崩溃
- android - 如何调查为什么 gradle build 使用缓存的资源 ID
- java - Spring preAuthorize SpEL查询的日志结果?
- java - 压缩机是抽象的;无法实例化
- ios - Xcode 找不到任何与“应用程序名称”匹配的 iOS 应用程序开发配置文件
- java - 如何修复异常:getOutputStream() 已为此响应调用?