创建类以返回char数组

时间:2014-04-10 15:39:07

标签: c++ c++11

我正在尝试用C ++创建一个帮助我操作char数组的类。我怎样才能以正确的方式做到这一点?

1 - 使用提供的大小

创建char数组

2 - 在getArray()

中返回char数组
class ByteArray {
public:
    ByteArray(int size) {
        array_.resize(size);
    }

    const char* getArray() { return array_; }

private:
    char array_[];
};

3 个答案:

答案 0 :(得分:2)

您可以使用std :: vector;

 class ByteArray {
    public:
        ByteArray(int size) {
            array_.reserve(size);
        }

        const char* getArray() { return array_.data(); }

    private:
        std::vector<char> array_;
    };

答案 1 :(得分:1)

这样的事可能

class ByteArray {
public:
    ByteArray(int size) {
        delete[] array_;
        array_ = new char[size];
    }

    const char* getArray() { return array_; }

private:
    char *array_;
};

您不能使用没有大小的数组,而是可以动态分配它。

答案 2 :(得分:-1)

这是我找到的最佳版本。

class ByteArray {
public:
    ByteArray(int size) {
        array_ = (char*)malloc(size);
    }

    ~ByteArray() {
        free(array_);
        array_ = NULL;
    }

    const char * getArray() { return array_; }

private:
    char * array_;
};