我创建了自己的头文件,这就是我们被要求这样做的方法,但是我应该在主程序中使用哪些参数来调用这个头文件并创建一个数组。
我的头文件如下所示:
#ifndef ARRAY_H
#define ARRAY_H
class Array {
public:
Array(int size) : _size(0), _arr(0) {
// Call resize to initialize oneself
resize(size) ;
}
Array(const Array& other) : _size(other._size) {
_arr = new double[other._size] ;
// Copy elements
for (int i=0 ; i<_size ; i++) {
_arr[i] = other._arr[i] ;
}
}
~Array() {
delete[] _arr ;
}
Array& operator=(const Array& other)
{
if (&other==this) return *this ;
if (_size != other._size) {
resize(other._size) ;
}
for (int i=0 ; i<_size ; i++) {
_arr[i] = other._arr[i] ;
}
}
double& operator[](int index) {
return _arr[index] ;
}
const double& operator[](int index) const {
return _arr[index] ;
}
int size() const { return _size ; }
void resize(int newSize) {
// Allocate new array
double* newArr = new double[newSize] ;
// Copy elements
for (int i=0 ; i<_size ; i++) {
newArr[i] = _arr[i] ;
}
// Delete old array and install new one
if (_arr) {
delete[] _arr ;
}
_size = newSize ;
_arr = newArr ;
}
private:
int _size ;
double* _arr ;
} ;
#endif
答案 0 :(得分:2)
#include "your-h-filename.h"
即可。然后,您将能够使用.h文件中定义的已定义的类,变量和函数。您可能需要阅读此内容:http://www.learncpp.com/cpp-tutorial/19-header-files/
答案 1 :(得分:1)
在任何要使用此类的.cpp文件中,假设“Array.h”是.cpp文件中头文件的相对路径,请输入以下行:
#include "Array.h"
在文件顶部附近,在任何函数或类型声明之前。这可以确保将数组文件中的代码视为在该.cpp文件中的那一点写入。
另外请注意,您通常希望将类方法的定义拆分为单独的.cpp文件(可能是Array.cpp)。例如,对于resize
,头文件中的定义应更改为:
void resize(int newSize);
并且完整定义应该放在.cpp文件中:
void Array::resize(int newSize) {
// Allocate new array
double* newArr = new double[newSize] ;
// Copy elements
for (int i=0 ; i<_size ; i++) {
newArr[i] = _arr[i] ;
}