首页 > 代码库 > 【ThinkingInC++】34、带有构造函数和析构函数的Stack
【ThinkingInC++】34、带有构造函数和析构函数的Stack
头文件
/** * 书本:【ThinkingInC++】 * 功能:带有构造函数和析构函数的Stack * 时间:2014年8月27日11:13:10 * 作者:cutter_point */ #ifndef STACK3_H_INCLUDED #define STACK3_H_INCLUDED class Stack { struct Link { void* data; Link* next; Link(void* dat, Link* nxt); ~Link(); }*head; public: Stack(); ~Stack(); void push(void* dat); //压入一个数据 void* peek(); //返回栈的顶元素但是在栈中不删除元素 void* pop(); //返回栈顶元素,并且从栈中删除这个元素 }; #endif // STACK3_H_INCLUDED
定义文件
/** * 书本:【ThinkingInC++】 * 功能:关于Stack的够着函数 * 时间:2014年8月27日11:13:14 * 作者:cutter_point */ #include"Stack3.h" #include"../require.h" using namespace std; /* struct Link { void* data; Link* next; Link(void* dat, Link* nxt); ~Link(); }*head; public: Stack(); ~Stack(); void push(void* dat); //压入一个数据 void* peek(); //返回栈的顶元素但是在栈中不删除元素 void* pop(); //返回栈顶元素,并且从栈中删除这个元素 */ Stack::Link::Link(void* dat, Link* nxt) { data=http://www.mamicode.com/dat;>测试文件
/** * 书本:【ThinkingInC++】 * 功能:测试程序的使用 * 时间:2014年8月27日11:13:20 * 作者:cutter_point */ #include"Stack3.cpp" #include"../require.h" #include<fstream> #include<iostream> #include<string> using namespace std; int main() { ifstream in("Stack3Test.cpp"); assure(in, "Stack3Test.cpp"); Stack textlines; string line; while(getline(in, line)) textlines.push(new string(line)); //压栈,倒序输出 string* s; while((s=(string*)textlines.pop()) != 0) { cout<<*s<<endl; delete s; } return 0; }
最近想了想是不是要恢复的以前的吧那些理论的东西也写进来呢?因为我们查博客的时候,但看程序的话,有些地方还是不懂的,虽然我写了大量的注释,但是感觉还是要有个层次性的东西。
【ThinkingInC++】34、带有构造函数和析构函数的Stack
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。