-1

あるクラス コンストラクターから別のクラス コンストラクターにオブジェクトを渡そうとしていますが、うまくいかないようです。以下にコードを示します。

私は次のクラスを持っています:

class STFT {

    public:

      template<typename Inverse>
      STFT(Inverse begin, Inverse end, size_t x, size_t y, WindowType type)
      {
          switch(type) 
          {
              case 0: 
              this->w = Window(0, 100, this->w); // "0" is the type of window, 100 is the size, this-w is a reference to the object. 
              break;

              case 1:

              break;
          }         
      }
    protected:
       Window w;
};

複数のクラスがありHammingHanningそれらはすべてクラスから継承されWindowます..私がやりたいことは、Window初期化するオブジェクトを決定するコンストラクターを持っていることです..

Window(int theWindow, size_t size, Window& w)
{
   switch(theWindow)
   {
      case 0:
        w = new Barlett(100);
      break;
      //**
}

しかし、次のエラーが発生します。

no known conversion for argument 1 from 'Barlett*' to 'const Window&'

から継承しWindowBarlettいるのにに変換できないからだと思います。BarlettWindow

誰かに何か提案があれば、それは素晴らしいことです:)

4

1 に答える 1