template <typename T>class stack{
stack();
~stack();
void push(T _val);
T pop();
T read();
bool is_empty();
size_t get_size();
private:
size_t size;
size_t fullsize;
T *elems;
}
ошбика компиляции
Код:
описатель функций stack.cpp (Resource File):
Код:
#ifndef CLS_STACK
#define CLS_STACK
#include "stack.h"
template <typename T>void stack<T>::push(T _val){ // 2 ошибка
if(this.fullsize>0){
if(this.size==this.fullsize){
T elems=new T[this.size];//malloc(sizeof(T)*this.size);
for(int i=0;i<this.size;i++) elems=this->elems;
delete(this->elems);
this->elems=new T[this.size+1];
for(int i=0;i<this.size;i++) this->elems=elems;
}
}
else this->elems=new T[this.size+1];
this->elems[this.size]=_val;
this.size++;
this.fullsize++;
}
template <typename T>bool stack<T>::is_empty(){
return size==0;
}
template <typename T>T stack<T>::pop(){
if(this.is_empty()) return;
return elems[--size];
}
template <typename T>T stack<T>::read(){
if(this.is_empty()) return;
return elems[size-1];
}
template <typename T>size_t stack<T>::get_size(){
return this.size;
}
#endif
#define CLS_STACK
#include "stack.h"
template <typename T>void stack<T>::push(T _val){ // 2 ошибка
if(this.fullsize>0){
if(this.size==this.fullsize){
T elems=new T[this.size];//malloc(sizeof(T)*this.size);
for(int i=0;i<this.size;i++) elems=this->elems;
delete(this->elems);
this->elems=new T[this.size+1];
for(int i=0;i<this.size;i++) this->elems=elems;
}
}
else this->elems=new T[this.size+1];
this->elems[this.size]=_val;
this.size++;
this.fullsize++;
}
template <typename T>bool stack<T>::is_empty(){
return size==0;
}
template <typename T>T stack<T>::pop(){
if(this.is_empty()) return;
return elems[--size];
}
template <typename T>T stack<T>::read(){
if(this.is_empty()) return;
return elems[size-1];
}
template <typename T>size_t stack<T>::get_size(){
return this.size;
}
#endif
main.cpp (Source):
Код:
#include "stack.h"
int main(){ // здесь 1 ошибка
.....
return 0;
}
int main(){ // здесь 1 ошибка
.....
return 0;
}
2 ошибки:
1) error C2143: syntax error : missing ';' before 'int'
2) error C2143: syntax error : missing ';' before 'template'
я не понимаю чё он от меня требует, где пропущена ; ... объясните плз -(((((
Код:
template <typename T>class stack
{
....
....
}; // <<== вот тут
{
....
....
}; // <<== вот тут
Ну и сторожи включения не в том файле (надо перенести в заголовочный). Хотя в данном примере это скорее всего не приведёт к сбою.
спс, ой я смеюсь над собой! мне этот черт возьми стек испортил день :D