Class 向量表达式必须具有类类型
我有一个类似于基本堆栈的类。在我的成员函数定义中,我在vec的每个实例上都会得到一个错误。错误告诉我表达式必须具有类类型。我必须做些什么来解决这个问题Class 向量表达式必须具有类类型,class,function,vector,stack,members,Class,Function,Vector,Stack,Members,我有一个类似于基本堆栈的类。在我的成员函数定义中,我在vec的每个实例上都会得到一个错误。错误告诉我表达式必须具有类类型。我必须做些什么来解决这个问题 class Stack{ public: Stack(); Stack & push(double & t); double pop() const; unsigned long long getElements(); private:
class Stack{
public:
Stack();
Stack & push(double & t);
double pop() const;
unsigned long long getElements();
private:
vector <double> vec[10];
static double answer;
};
Stack::Stack(){
answer=0;
}
Stack & Stack::push(double & t){
vec.push_back(t);
return *this;
}
double Stack::pop()const{
return vec.pop_back();
}
unsigned long long Stack::getElements(){
return vec.size();
}
类堆栈{
公众:
堆栈();
堆叠和推送(双&t);
双pop()常数;
无符号长getElements();
私人:
向量向量向量[10];
静态双重回答;
};
Stack::Stack(){
答案=0;
}
堆栈和堆栈::推送(双(&t){
向量推回(t);
归还*这个;
}
双堆栈::pop()常量{
返回向量pop_back();
}
无符号长堆栈::getElements(){
返回向量大小();
}
这里有许多问题,在解决这些问题后,我得到了:
#include <vector>
using namespace std;
class Stack{
public:
Stack();
Stack & push(double & t);
double pop();
unsigned long long getElements();
private:
vector <double> vec;
static double answer;
};
Stack::Stack(){
answer=0;
}
Stack & Stack::push(double & t){
vec.push_back(t);
return *this;
}
double Stack::pop(){
double ret = vec.back();
vec.pop_back();
return ret;
}
unsigned long long Stack::getElements(){
return vec.size();
}
#包括
使用名称空间std;
类堆栈{
公众:
堆栈();
堆叠和推送(双&t);
双pop();
无符号长getElements();
私人:
向量向量机;
静态双重回答;
};
Stack::Stack(){
答案=0;
}
堆栈和堆栈::推送(双(&t){
向量推回(t);
归还*这个;
}
双栈::pop(){
双ret=vec.back();
vec.pop_back();
返回ret;
}
无符号长堆栈::getElements(){
返回向量大小();
}
我所做的改变是:
thx我做了编辑,但这仍然不能解决问题:/有什么想法吗?我在“g++-cx.cpp”上没有得到任何错误。你能发布一条错误消息吗?我还忘了提到我删除了声明上的[10]——这不是如何声明尺寸。