#ifndef ARRAYZ_H #define ARRAYZ_H #include #include #include class ArrayZ { public: // Default/length/array constructor ArrayZ(int length = 0, std::complex* data = 0); // Copy constructor ArrayZ(const ArrayZ & source); // Destructor ~ArrayZ(); // Assignment operator ArrayZ & operator=(const ArrayZ & source); // Equals operator bool operator==(const ArrayZ & other) const; // Length accessor int length() const; // Resize array void resize(int length, std::complex* data = 0); // Set item accessor std::complex & operator[](int i); // Get item accessor const std::complex & operator[](int i) const; // String output std::string asString() const; // Get view void view(std::complex** data, int* length) const; private: // Members bool _ownData; int _length; std::complex * _buffer; // Methods void allocateMemory(); void deallocateMemory(); }; #endif