首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态对象的动态数组

动态对象的动态数组
EN

Stack Overflow用户
提问于 2016-03-19 13:12:15
回答 2查看 115关注 0票数 1

我正在尝试实现一个简单的讲师列表,它是一个动态“讲师”对象的动态数组。首先,我是,不允许使用STL,也不允许使用向量等。目标是在堆上启动一个具有默认值的动态指导员数组,当需要添加指导员时,在必要时展开数组。问题是无法初始化具有默认大小的教员数组,因为指导员对象的大小也是动态的。有什么好办法处理这件事吗?

这是指导员的课

代码语言:javascript
复制
class Instructor{
private:
    string title, firstName, lastName, telNo, roomNo, userName, eMail;
    string courses[];

public:
    Instructor();
    Instructor(string, string, string, string, string, string, string, string);
    string getTitle();
    string getFirstName();
    string getLastName();
    string getTelNo();
    string getRoomNo();
    string getUserName();
    string getEMail();
    string getCourse(int courseIndex);
    void setTitle(string);
    void setFirstName(string);
    void setLastName(string);
    void setTelNo(string);
    void setRoomNo(string);
    void setUserName(string);
    void setEMail(string);
    void setCourse(string);
    void print();
};

我尝试初始化数组的部分:

代码语言:javascript
复制
int size = 5;
Instructor *instructorList;
instructorList = new Instructor[size];

它引发错误:不允许包含未知大小数组的类型。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-19 13:17:35

使用指针存储(数组的地址)。

而不是

代码语言:javascript
复制
string courses[];

使用

代码语言:javascript
复制
string *courses;

并将其初始化为

代码语言:javascript
复制
courses = new string[size_of_elements];

要扩展元素的数量,您必须

  1. 分配具有新大小的新数组
  2. 将旧数组的内容复制到新数组
  3. 只销毁旧数组(这里不要销毁新数组!)
  4. 将新数组的地址分配给courses
票数 3
EN

Stack Overflow用户

发布于 2016-03-19 13:31:10

创建一个与代码类似的简单示例。效果很好。

代码语言:javascript
复制
class A {
private:
    char *field;
public:
    A() {};
    A(char *field) : field(field) { }
    char *getField() const {
        return field;
    }
};

int main() {
    int size = 5;
    A *aList = new A[size];
    for (int i = 0; i < size; i++) {
        aList[i] = A((char *) std::to_string(i).c_str());
        std::cout << aList[i].getField();
    }
    return 0;
}

使用它修复您的错误

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36102164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档