菜鸟求助,一道题不会。

我是魏星星 2012-11-22 07:01:40
7.下面是一个整型堆栈类intStack的声明,请给出该类所有数据成员的类外定义。
class intStack
{public:
intStack (int size=10);//构造函数
~intStack ();//析构函数
bool Push(int elem);//入栈操作
bool Pop(int &elem); //出栈操作
int Length( ) const; //获取栈中元素的个数
private:
int *data; //指向动态数组的指针
int top; //栈顶指针
int size; //堆栈的容量
};


这个咋写啊?
...全文
140 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xumaojun 2012-11-22
  • 打赏
  • 举报
回复
类的成员定义域声明最好区分开来,不要写在一起。
max_min_ 2012-11-22
  • 打赏
  • 举报
回复
class Stack {
public:
	// 构造过程中分配内存
	Stack (size_t uCapacity) : m_pArray (new int[uCapacity]), m_uCapacity (uCapacity), m_uTop (0) {}
	// 析构过程中释放内存
	~Stack (void) {
		if (m_pArray) {
			delete[] m_pArray;
			m_pArray = NULL;
		}
		m_uCapacity = 0;
		m_uTop = 0;
	}
	// 压入
	void Push (int nData) {
		if (m_uTop >= m_uCapacity)
			throw OverFlow ();
		m_pArray[m_uTop++] = nData;
	}
	// 弹出
	int Pop (void) {
		if (! m_uTop)
			throw UnderFlow ();
		return m_pArray[--m_uTop];
	}
       //获取栈中元素个数
       int Length()
        {
               return ++m_uTop;
         }
private:
	// 上溢异常
	class OverFlow : public exception {
	public:
		const char* what (void) const throw () {
			return "堆栈上溢!";
		}
	};
	// 下溢异常
	class UnderFlow : public exception {
	public:
		const char* what (void) const throw () {
			return "堆栈下溢!";
		}
	};
	int* m_pArray; // 数组
	size_t m_uCapacity; // 容量
	size_t m_uTop; // 栈顶
};

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧