也就是训练将原来的c语言 用类表示出来。。

关于构造器:

  //1与类名相同 没有返回值 被系统生成对象时自动调用,用于初始化
  //2 可以有参数 构造器重载 默认参数
  //3 重载和默认不能同时存在,系统默认生成一个无参的构造器,如果提供了,那么系统不在提供

 #include <iostream>

 using namespace std;

 typedef struct Stack
{
char space[];
int top;
}Stack;
void init(Stack *s)
{
s->top = ;
memset(s->space,,);
}
int isEmpty(Stack *s)
{
return s->top == ;
}
int isFull(Stack *s)
{
return s->top == ;
} char pop(Stack *s)
{
return s->space[--(s->top)];
}
char push(Stack *s,char c)
{
return s->space[s->top++] = c;
}
int main()
{ Stack st;
init(&st);
if(!isFull(&st))
{
push(&st,'g');
}
if(!isFull(&st))
{
push(&st,'t');
}
if(!isFull(&st))
{
push(&st,'n');
}
if(!isFull(&st))
{
push(&st,'h');
}
if(!isFull(&st))
{
push(&st,'r');
}
while(!isEmpty(&st))
{
cout<<pop(&st)<<endl;
}
return ;
}

c++的实现

 //stack.cpp

 #include <iostream>
#include "stack.h"
using namespace std; bool Stack:: isEmpty()
{
return top == ;
}
bool Stack:: isFull()
{
return top == _size;
} char Stack:: pop()
{
return space[--(top)];
}
char Stack:: push(char c)
{
return space[top++] = c;
}
//stack.h

#include <iostream>

using namespace std;
//2017/1/14
//construtot 构造器
//1与类名相同 没有返回值 被系统生成对象时自动调用,用于初始化
//2 可以有参数 构造器重载 默认参数
//3 重载和默认不能同时存在 //destructor 析构器
//~与类型相同 无参无返回 用于对象销毁时的内存处理工作
//
class Stack
{
public:
Stack()//这里通过其中一个注释和同时注释可以得到一个结论:
//系统默认生成一个无参的构造器,如果提供了,那么系统不在提供 { //init();
//cout<<"stack()"<<endl;
top = ;
space = new char[]; }
Stack(int size)//重载
{
top = ;
space = new char[size];
_size = size;
}
~Stack()
{
cout<<"析构"<<endl;
}
//void init();
bool isEmpty();
bool isFull();
char pop();
char push(char c);
private: char *space;
int top;
int _size;
};
 //main.cpp

 #include <iostream>
#include "stack.h"
using namespace std;
int main()
{
Stack *ps = new Stack;//无参构造 标配
Stack *ps2 = new Stack();
delete ps;
delete ps2;//此时需要手动
//Stack st;//此时调用无参构造
//为什么不是stack st() 只是因为有一个
//冲突和函数void function();
Stack st();//调用有参构造
//st.init();
for(char y='a';!st.isFull()&&y!='z';y++)
{
st.push(y);
}
while(!st.isEmpty())
{
cout<<st.pop()<<endl;
}
return ;
}

c语言和c++栈的简单实现以及构造器的原理的更多相关文章

  1. HTML标记语言和CSS样式的简单运用(Nineteenth Day)

    曾经励志下去要坚持把每天所学的知识记录下来,可是坚持了几天后,就觉得自己坚持不下去了....这几天自己好好的想了想,觉得不能坚持也得要坚持,因为要对自己负责,所以得学会逼着自己去做,只有这样才能把一件 ...

  2. C语言和C++篇

    C语言和C++篇 基本上所有主流的编程语言都有String的标准库,因为字符串操作是我们每个程序员几乎每天都要遇到的.想想我们至今的代码,到底生成和使用了多少String!标题上所罗列的语言,可以看成 ...

  3. 从C,C++,JAVA和C#看String库的发展(一)----C语言和C++篇

    转自: http://www.cnblogs.com/wenjiang/p/3266305.html 基本上所有主流的编程语言都有String的标准库,因为字符串操作是我们每个程序员几乎每天都要遇到的 ...

  4. C语言和C++中动态申请内存

      在C语言和C++的动态内存的使用方法是不同的,在C语言中要使用动态内存要包含一个头文件即 #include<malloc.h> 或者是#include<stdlib.h>  ...

  5. 大数据工具比较:R 语言和 Spark 谁更胜一筹?

    本文有两重目的,一是在性能方面快速对比下R语言和Spark,二是想向大家介绍下Spark的机器学习库 背景介绍 由于R语言本身是单线程的,所以可能从性能方面对比Spark和R并不是很明智的做法.即使这 ...

  6. Go语言和ASP.NET的一般处理程序在处理WEB请求时的速度比较

    Go语言和ASP.NET的一般处理程序在处理WEB请求时的速度比较 1.首先写一个Go语言的简单WEB程序,就返回一个HelloWord! package main import ( f " ...

  7. 聊聊C语言和ABAP

    这个公众号之前的文章,分享的都是Jerry和SAP成都研究院的同事在工作中学到的一些知识和感受.而今天这篇文章,写作的由来是因为最近我又参与了SAP成都数字创新空间应聘者的面试,和一些朋友聊了一些关于 ...

  8. C语言和C++的应用领域都在哪些?学C语言好,还是学习C++好?

    从事嵌入式开发十几年,基本上围绕着这两种编程语言展开,都可以直接操作底层的编程语言,用的越熟练越是感觉工具属性越强.虽然两种编程语言分属于不同的编程思想,用的时间长了觉得差异也不是很大,现在就个人的从 ...

  9. IOS-2-C语言和Objective-C语言衔接学习资料

    前言:在IOS学习中.通常会先学习一周的C语言,两周的Objective-C语言,这是今后开发的最基础最重要的部分,以下给大家分享一下培训课上的精简资料: C语言和Objective-C语言衔接学习资 ...

随机推荐

  1. Codevs 2756 树上的路径

    2756 树上的路径  时间限制: 3 s  空间限制: 128000 KB  题目等级 : 大师 Master     题目描述 Description 给出一棵树,求出最小的k,使得,且在树中存在 ...

  2. Pollard rho模板

    #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #in ...

  3. python学习之---- paramiko 模块

    paramiko 模块 功能:提供了ssh及sftp进行远程登录服务器执行命令和上传下载文件的功能.这是一个第三方的软件包,使用之前需要安装. 1  基于用户名和密码的 sshclient 方式登录 ...

  4. P1396 营救 洛谷

    https://www.luogu.org/problem/show?pid=1396 题目描述 “咚咚咚……”“查水表!”原来是查水表来了,现在哪里找这么热心上门的查表员啊!小明感动的热泪盈眶,开起 ...

  5. 操作redis有关的命令

    )连接操作命令 quit:关闭连接(connection) auth:简单密码认证 help cmd: 查看cmd帮助,例如:help quit )持久化 save:将数据同步保存到磁盘 bgsave ...

  6. 开头第一篇Hello World

    以前在折腾个人博客的时候,使用过的WordpPress.Z-Blog.Typecho建站程序,开头第一篇都是Hello World,作为程序员的社区,开头第一篇当然也要是Hello World! 一句 ...

  7. 洛谷 P2862 [USACO06JAN]把牛Corral the Cows

    P2862 [USACO06JAN]把牛Corral the Cows 题目描述 Farmer John wishes to build a corral for his cows. Being fi ...

  8. Spring中使用byType实现Beans自动装配

    以下内容引用自http://wiki.jikexueyuan.com/project/spring/beans-auto-wiring/spring-autowiring-byType.html: 此 ...

  9. 多线程调用COM组件的体会(CoInitialize)

    调用任何COM组件之前,你必须首先初始化COM套件环境,即调用CoInitialize或CoInitializeEx.COM套件环境在线程的生存周期内有效,线程退出前需要调用CoUninitializ ...

  10. UML视频总结

    "RUP 4+1"视图 学习UML我们就必须先了解这"RUP 4+1"视图,它是架构设计的结构标准,例如以下图所看到的. watermark/2/text/aH ...