我试图从类方法调用复制构造函数(我读到它是不可能的)但我需要这样做,只是为了学习和理解。 这是我想要做的 -
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()
调用构造函数,现在我得到了无限循环。请帮忙,请解释一下。谢谢!!