有没有办法从模板类中的成员函数调用复制构造函数?

时间:2016-11-29 17:30:13

标签: c++

我试图从类方法调用复制构造函数(我读到它是不可能的)但我需要这样做,只是为了学习和理解。 这是我想要做的 -

     template<class TYPE>
   class Stack {

    public :

      Stack(){count = 0;}
      Stack(TYPE const &  );                            
      void Push(TYPE  );
      void Show();

    private :
      std::vector<TYPE> Elem_Vec;
      std::size_t count ; 

};

这是我的定义

 template<class TYPE >
  Stack<TYPE>:: Stack(TYPE const & elem_vec ){
   Elem_Vec.push_back(elem_vec ); ++count; 
}// end

template<class TYPE >
  void Stack<TYPE>::Push(TYPE  elem ){
  *this = elem ;
}// end

  template<class TYPE >
   void Stack<TYPE>:: Show(void ){
   std::cout << "Number of Elemnets in  stack : " << count << std::endl;
  }

这是我的主要

int main(void ){
 Stack<int> obj;
 for(int i = 10 ; i < 13 ; ++i )
    obj.Push(i);
    obj.Show();
    return 0;
 }  

首先我得到了阴影错误,因为我试图直接从Push()调用构造函数,现在我得到了无限循环。请帮忙,请解释一下。谢谢!!

0 个答案:

没有答案