类构造函数和数组

Class constructor and Arrays

本文关键字:数组 构造函数      更新时间:2023-10-16

我正在为学校做一个项目,我遇到了一个死胡同。项目的一部分要求我们有一个使用数组的类。我们必须使用数组(遗憾的是,我们不能使用向量)。我正试图弄清楚如何在运行时在类中构造一个数组。一开始我不需要在里面放任何东西,我只需要构造函数使数组达到一定的大小。我们非常感谢您的反馈或帮助。以下是到目前为止我对类和构造函数的了解。这个项目是用c++完成的。

#pragma once
#include <iostream>
#include <string>
using namespace std;
class Node
{
public:
    int size;
    string container[];
    Node ( int s, string c[]);
};
Node::Node (int s, string c[])
{
    size=s;
        ***I need something here that will give string container[] the size of "size"***
}

提前谢谢。

您需要一个动态分配的数组:

class Node
{
public:
    int size;
    string* container;
    Node ( int s, string c[])
    {
       container = new string[s];
       //copy c to container
    }
    ~Node ()
    {
       delete[] container;
    }
};

此外,请记住释放析构函数中的内存。

我会使用一个指针。当你得到这个尺寸时,就用这个尺寸打电话给new。

char* myArray;
constructor(int size) {
    myArray = new char[size];
}

您还必须在析构函数中调用delete。

class Node 
{ 
public: 
    int size; 
    string* container; 
    Node ( int s, string c[]); 
    ~Node() { if (container != NULL) delete [] container; }
}; 
Node::Node (int s, string c[]) : container(NULL)
{ 
    size=s; 
    container = new string[size];
    // Copy list values into container
}