求助:C++在头文件中用枚举变量作为类中函数返回值一直有错??为什么??!
数据结构与算法的作业,快把自己逼疯了,网上有效信息好少(或者是我自己不会筛选??)。
一直这样报我看不懂的错,叹息
.....
第一次求助广大网友,求教
!

感觉出问题的原因应该是:在头文件里定义了枚举变量Error_code。
但我也试了在头文件里声明static,在.cpp文件里定义;试了在头文件里定义,在.cpp文件里用extern声明,都不行。
甚至我还试了将枚举变量移到了类的内部,都不行。
awsl,数据结构杀我
。
代码如下:
这个是关于栈的头文件:
这个是栈的,cpp文件:
然后捏,这个是主程序:
问题到底在哪里?
一直这样报我看不懂的错,叹息
.....第一次求助广大网友,求教
!
感觉出问题的原因应该是:在头文件里定义了枚举变量Error_code。
但我也试了在头文件里声明static,在.cpp文件里定义;试了在头文件里定义,在.cpp文件里用extern声明,都不行。
甚至我还试了将枚举变量移到了类的内部,都不行。
awsl,数据结构杀我
。代码如下:
这个是关于栈的头文件:
// stack.h
// stack头文件
#ifndef stack_h
#define stack_h
#include<iostream>
using namespace std;
enum Error_code {underflow,success,overflow};
template <typename Stack_entry>
class Stack
{
public:
Stack(int len) : count(0), size(len), entry(new Stack_entry[size]) {}
~ Stack() { delete [] entry; }
bool empty() const;
Error_code pop();
Error_code top( Stack_entry &item ) const;
Error_code push(const Stack_entry &item);
private:
int count;
int size;
Stack_entry * entry;
};
#endif这个是栈的,cpp文件:
// stack.cpp
// stack的具体实现文件
#include<iostream>
#include "stack.h"
using namespace std;
template <class Stack_entry>
bool Stack<Stack_entry> :: empty() const
/*Pre: None.
Post:If the stack is empty, true is returned. Otherwisw false is returned.*/
{
return count == 0 ? true : false;
}
template <class Stack_entry>
Error_code Stack<Stack_entry> :: pop()
/*Pre: None.
Post:If the stack is not empty, the top of the stack is removed.
If the stack is empty, an Error_code of underflow is returned.*/
{
Error_code outcome = success;
if (count == 0)
outcome = underflow;
else
cout << entry[count--];
return outcome;
}
template <class Stack_entry>
Error_code Stack<Stack_entry> :: push(const Stack_entry &item)
/*Pre: None.
Post:If the stack is not full, item is added to the top of the stack..
If the stack is full, an Error_code of overflow is returned.*/
{
Error_code outcome = success;
if (count > size)
outcome = overflow;
else
entry[count++] = item;
return outcome;
}
template <class Stack_entry>
Error_code Stack<Stack_entry> :: top(Stack_entry &item) const
/*Pre: None.
Post:If the stack is not empty, the top of the stack is returned in item.
If the stack is empty, an Error_code of underflow is returned.*/
{
Error_code outcome = success;
if(count == 0)
outcome = underflow;
else
item = empty[count-1];
return outcome;
}然后捏,这个是主程序:
/* 程序目的:
用模板形式将动态数组存储的栈实现
在主函数中将栈实例化
完成指定输入输出测试程序
*/
#include<iostream>
#include"stack.h"
using namespace std;
int main()
{
Stack<char> data(3);
data.push('a');
data.push('b');
data.push('c');
data.pop();
data.pop();
data.pop();
return 0;
}问题到底在哪里?

...全文
相关推荐
C++ .h和.cpp文件总结
"这篇文档是关于C++编程中头文件(.h)和源文件(.cpp)的使用总结,旨在帮助新手理解两者的区别和作用。文档提到了头文件通常用于声明类型、函数和宏常量,而源文件则用于实现函数和定义变量。作者探讨
C++ 类 函数 变量
在C++中, 用 “类” 来描述 “对象”, 所谓的"对象"是指现实世界中的一切事物。那么类就可以看做是对相似事物的抽象, 找到这些不同事物间的共同点, 如自行车和摩托车, 首先他们都属于"对象", 并且具有一定得相同点, 和一些不同点, 相同点如他们都有质量、都有两个轮子, 都是属于交通工具等。“都有质量”、"两个轮子"属于这个对象的属性, 而"都能够当做交通工具"属于该对象具有的行为, 也称方法。类是属于用户自定义的数据类型, 并且该类型的数据具有一定的行为能力, 也就是类中说描述的方法。
C++在函数中给类的指针变量赋值问题
### C++中函数内给类的指针变量赋值问题详解#### 一、问题背景与分析在C++编程中,指针的使用是非常常见的,尤其是在处理复杂数据结构或对象时。
C、C++常用头文件及函数汇总
### C/C++常用头文件及函数汇总在C/C++编程语言中,头文件是预定义的标准库,包含了实现各种功能所需的函数、变量和数据类型的声明。熟练掌握这些头文件及其内部函数对于提高编程效率至关重要。
C++_关于声明,定义,类的定义,头文件作用
- **示例**: ```cpp int x = 3; // 变量定义 void print() { /* 函数体 */ } // 函数定义 ```### 类的定义类是C++中的一个重要概念,用于定义对象的行为和属性


