C ++ ArrayStack中的构造函数问题

时间:2018-11-04 23:06:10

标签: c++ arrays

我正在构造StackArray。我已经有一个用构造函数实现的“ Stack.h”。我想知道如何在“ StackArray.h”文件中使用Stack.h文件。我当时在考虑使用继承,但这给了我一个错误。

我的代码如下:

Array.h

#include <iostream>
#include <assert.h>

using namespace std;
#ifndef _ARRAY_H
#define _ARRAY_H

template<class T>
class Array{
  private:
    T *a;
    int length;
  public:
    // constructor
    Array (int len){
      length = len;
      a = new T[length];
      for (int i = 0; i < len; i++){
        a[i]=0;
      }
    }
    // destructor
    ~Array()
      {delete[] a;}
    // operator overload
    T& operator [](int i){
      assert (i>=0 && i < length);
      return a[i];
    }

    //get the length of the array
    int arraylength(){
      return length;
    }
};
#endif

ArrayStack.h

#ifndef _ARRAYSTACK_H_
#define _ARRAYSTACK_H_

#include "Array.h"

using namespace std;

template<class T>
class ArrayStack
{
  protected:
    Array<T> a;
    int n;
  public:
    ArrayStack(int len);
    virtual ~ArrayStack();
};


template<class T>
ArrayStack<T>::ArrayStack(int len){
 // I don't know what to do here to implemented constructor from another class.
}

#endif

任何建议都会很棒,谢谢 安迪

0 个答案:

没有答案