작동하지의 복사 생성자에서 푸시() :팝() 내가 복사 생성자의 원래 스택의 <code>push()</code> 및 <code>pop()</code> 기능을 사용할 그것은 나에게 다음과 같은 오류 줄 때 템플릿 스택 클래스는
[Error] passing 'const Stack' as 'this' argument of 'void Stack::pop() [with type = int]' discards qualifiers [-fpermissive]
어떻게 복사를 푸시와 팝을 사용하여 다른 스택 하나?
template <class type> Stack<type>::Stack(const Stack<type> & originalStk)
{
MAXSIZE=originalStk.getSize();
list = new type[MAXSIZE];
top = -1;
if(!originalStk.isEmpty())
{
Stack<type> temp(originalStk.getSize());
while(!originalStk.isEmpty())
{
temp.push(originalStk.topVal());
originalStk.pop();
}
while(!temp.isEmpty())
{
originalStk.push(temp.topVal());
push(temp.topVal());
temp.pop();
}
}
else
{
}
}
_ "오류가 발생합니다"_ 무슨 오류가 있습니까? 는 [오류] 통과 'const를 스택이'의 '이'인수로 '무효 스택 :: 팝() [타입 = INT와는]'예선 [-fpermissive] –
@RichardCritten 그것은 나에게 다음과 같은 오류를 제공합니다 'MAXSIZE' 란 무엇입니까? 어쨌든, 그것은 런타임 상수가 아닌 것처럼 보입니다. 즉,'new type [MAXSIZE];는 비표준 확장을 사용합니다. –
를 삭제 : –