gpt4 book ai didi

c++ - 模板成员资格问题?

转载 作者:行者123 更新时间:2023-11-28 07:34:32 25 4
gpt4 key购买 nike

当我尝试编译时出现以下代码错误,告诉我以下内容:

  • 'isEmpty':不是'_Stack'的成员

  • 编译类模板成员函数 'void QueueS::enqueue(const T &) 时出错

    #include <iostream>
    #include <stack>
    using namespace std;

    template <class T>
    class _Stack : public stack<T> {

    public:

    T pop(){
    T tmp=stack::top();
    stack::pop();
    return tmp;
    }
    };

    template <class T>
    class QueueS {
    public:
    QueueS(){}

    bool isEmpty() const{

    }


    void enqueue(const T& el){

    while (!output.isEmpty()) {
    input.push(ouput.pop());
    }

    input.push(el);

    }

    private:

    _Stack<T> input;
    _Stack<T> output;

    };

我不确定发生了什么。谁能提供任何帮助?我显然还没有实现 isEmpty。想知道这是否会产生影响。

最佳答案

你想做什么?这不会起作用,因为 isEnpty 是类 _stack 的成员函数。您可以通过将函数 isEmpty 添加到 _Stack 类来解决第一个问题。

像这样:

#include <iostream>
#include <stack>
using namespace std;

template <class T>
class _Stack : public stack<T>
{

public:

T pop(){
T tmp=stack::top();
stack::pop();
return tmp;
}
bool isEmpty() const{

return stack::empty();
}
};

template <class T>
class QueueS {


public:
QueueS(){}

bool isEmpty() const{

}


void enqueue(const T& el){

while( !output.isEmpty()) {
input.push(output.pop());
}

input.push(el);

}

private:
_Stack<T> input;
_Stack<T> output;

};


int main()
{
_Stack<int> sk;
sk.isEmpty();
QueueS<int> qu;
qu.enqueue(4);
return 1;
}

关于c++ - 模板成员资格问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17005077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com