fireyyouth 2016-08-23 16:42 采纳率: 0%
浏览 1940

error: ‘class Stack’ has no member named ‘elem’

 #include <pthread.h>
class Stack{
public:
    Stack();
    ~Stack();
    int pop();
    void push(int);
private:
    static const int STACKSIZE;
    int elem[STACKSIZE];
    int top;
    pthread_mutex_t mutex;
    pthread_cond_t notfull, notempty;

};

#include "stack.h"
#include <pthread.h>
Stack::Stack():
        top(-1),
        mutex(PTHREAD_MUTEX_INITIALIZER),
        notfull(PTHREAD_COND_INITIALIZER),
        notempty(PTHREAD_COND_INITIALIZER)
{}

/*
same effect as
lock
while (isfull());
doit;
unlock
*/
const int Stack::STACKSIZE = 10;
void Stack::push(int v) {
    pthread_mutex_lock(&mutex);
    while (top == STACKSIZE) {//full?
        pthread_cond_wait(&notfull, &mutex);
    }
    this->elem[++top] = v;
    pthread_mutex_unlock(&mutex);
    pthread_cond_broadcast(&notempty);
}

int Stack::pop() {
    pthread_mutex_lock(&mutex);
    while (top == -1) {//empty?
        pthread_cond_wait(&notempty, &mutex);
    }
    int retval = elem[top--];
    pthread_mutex_unlock(&mutex);
    pthread_cond_broadcast(&notfull);
    return retval;
}


  • 写回答

3条回答 默认 最新

  • devmiao 2016-08-23 23:29
    关注

    elem定义成public

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料