无法访问在类中声明的私有成员:队列类模板
cannot access private member declared in class: queue class template
我必须编写代码来实现模板队列我收到此错误:无法访问类中声明的私有成员在这一行
front=front->next;
这是我的代码的头文件,我收到错误:
#include <iostream>
#pragma once
using namespace std;
typedef int Error_code;
#define SUCCESS 0
#define OVERFLOW -1
#define UNDERFLOW -2
template <class T>
class Node{
T item;
Node * next;
Node(){item=0; next=NULL;}
Node(T n){item=n; next=NULL:}
};
template <class T>
class queue
{
protected:
Node<T>* front; // pointer to front of Queue
Node<T> * rear; // pointer to rear of Queue
int count; // current number of items in Queue
public:
queue();
~queue();
bool isempty(){
//return count == 0;
if(front==NULL)
return true;
else
return false;
};
bool isfull(){return false;};
Error_code serve(){
Error_code outcome = SUCCESS;
Node<T> *p;
if(isempty()){
cout<<"empty queue";
outcome=UNDERFLOW;
}
else{
p=front;
front=front->next;
delete p;
count--;
}
return outcome;
} ;
Error_code retrieve(T &item){
Error_code outcome SUCCESS;
if(isempty())
{ // front node is empty, queue is empty
//return false;
cout<<"empty queue";
outcome=UNDERFLOW;
}
return outcome;
};
Error_code append(T item){
Node<T> * n ;
n= new Node; // create node
n->item = item; // set node pointers
n->next = NULL;
if (isempty())
{
rear=front = n;
}
else
{
rear->next = n; // else place at rear
rear = n; // have rear point to new node
}
count++;
return SUCCESS;
};
};
front
是指向Node
的指针,但next
是Node
中的私有成员
template <class T>
class Node{
T item; // since you didn't specify access level
Node * next; // explicitly the access is private by default
Node(){item=0; next=NULL;}
Node(T n){item=n; next=NULL:}
};
所以你不能queue
类中使用它:
front=front->next; // error
将其更改为public
或重新设计程序
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 对RValue对象调用的LValue ref限定成员函数
- boost::进程间消息队列引发错误
- 为什么使用 "this" 指针调用派生成员函数?
- 向量成员在管理类指针C++队列时丢失
- 更改队列指针成员的值需要在 C++ 中出现奇怪的错误
- C++ 将队列作为成员的类的构造函数和析构函数
- 在优先级队列被推送到队列后,如何编辑对象成员
- 从指针队列访问结构的成员
- 队列类中的非空删除成员函数
- 简单,但找不到:使用类型类的 STL 队列的成员变量的语法
- 如何创建一个将队列作为数据成员的类,该成员在 c++ 中存储另一个类的实例
- 优先级队列成员函数不起作用
- 尝试将pcontext()转换为存储在队列中的结构成员时出现Seg错误
- 无法访问在类中声明的私有成员:队列类模板
- 访问类的私有成员的自定义优先级队列比较器
- 优先级队列没有名为 top() 的成员
- 是否可以直接从队列成员函数访问一对的成员变量
- 从队列中检索成员项
- 如何在具有8位成员的队列中前进,并将耦合组合为16位值