如果输入参数采用“指针传递”,那么加 const 修饰可以防止意外地改动该指针,起 到保护作用
如果输入参数采用“指针传递”,那么加 const 修饰可以防止意外地改动该指针,起 到保护作用。
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
//定义栈的尺寸
const int SIZE = ;
//定义处理栈的类模板接口
template <class T> class stack {
T stck[SIZE];
int tos;
public:
stack(void) {
tos = ;
cout << "Stack Initialized." << endl;
}
~stack(void) {
cout << "Stack Destroyed." << endl;
}
void push(T);
T pop(void);
};
//定义栈的成员函数
template <class T> void stack<T>::push(T i)
{
if(tos==SIZE)
{
cout << "Stack is full." << endl;
return;
}
stck[tos++] = i;
}
template <class T> T stack<T>::pop(void)
{
if(tos==)
{
cout << "Stack underflow." << endl;
return ;
}
return stck[--tos];
}
//main()函数中测试stack类模板
int main(int argc, char** argv) {
//处理int类型数据的栈
cout<<"stack<int> a :"<<endl;
stack<int> a;
a.push();
a.push();
cout << a.pop() << " ";
cout << a.pop() << endl;
//处理double类型数据的栈
cout<<"stack<double> b :"<<endl;
stack<double> b;
b.push(99.3);
b.push(-12.23);
cout << b.pop() << " ";
cout << b.pop() <<endl;
//处理char类型数据的栈
cout<<"stack<char> c :"<<endl;
stack<char> c;
for(int i=; i<; i++)
c.push((char) 'A' + i);
for(int i=; i<; i++)
cout <<c.pop();
cout << endl;
return ;
}
如果输入参数采用“指针传递”,那么加 const 修饰可以防止意外地改动该指针,起 到保护作用的更多相关文章
- jenkins Build Flow job 输入参数获取和传递
jenkins Build Flow job 输入参数获取和传递 如果设置Build Flow的job,怎样获取手工输入的参数. 1. 指定构建参数 job配置中,勾选"参数化构建" ...
- 字符串输出输入函数,const修饰符,内存分区,动态内存管理,指针和函数,结构体
1.字符串输出输入函数 读入字符串的方法: 1) scanf 特点:不能接收空格 2) gets 特点:可以接受含有空格的字符串 ,不安全 3) fgets(); 特点:可以帮我们自动根据数组的长度截 ...
- [Reprint]C++函数前和函数后加const修饰符区别
c++中关于const的用法有很多,const既可以修饰变量,也可以函数,不同的环境下,是有不同的含义.今天来讲讲const加在函数前和函数后面的区别.比如: 01 #include<iostr ...
- C++函数前和函数后加const修饰符区别
class Test(){ public: Test(){} const int foo(int a); const int foo(int a) const; }; 一.概念 当const在函数名前 ...
- C++ 成员函数前和函数后加const修饰符区别
博客转载自: https://www.iteblog.com/archives/214.html 分析以下一段程序,阐述成员函数后缀const 和 成员函数前const 的作用 #include< ...
- C++函数后面加const修饰
声明一个成员函数的时候用const关键字是用来说明这个函数是 "只读(read-only)"函数,也就是说明这个函数不会修改任何数据成员(object). 为了声明一个const成 ...
- 函数重载不仅仅是看其参数,还要看是否有const修饰
比如QString有两个函数,可以堂而皇之的存在,原因就在于有了const修饰以后,编译器不把两个函数当作同一个函数名了: QChar * data() const QChar * data() co ...
- const修饰指针的三种效果
当用const进行修饰时,根据const位置的不同有三种不同效果. 判断的标准是:const修饰谁,谁的内容就是不可变的. 1 const int *p = &a; const修饰*p, *p ...
- 如果参数是指针,且仅作输入用,则应在类型前加 const,以防止该 指针在函数体内被意外修改
如果参数是指针,且仅作输入用,则应在类型前加 const,以防止该 指针在函数体内被意外修改. #include <iostream> /* run this program using ...
随机推荐
- 判断IE浏览器版本的精简脚本
IE浏览器不管是什么版本,总是跟Web标准有些不太兼容.对于代码工作者来说,自然是苦不堪言,为了考虑IE的兼容问题,不管是写 CSS 还是 JS,往往都要对 IE 特别对待,这就少不了做些判断.本文不 ...
- 苹果开发——向App Store提交应用
原地址:http://zengwu3915.blog.163.com/blog/static/2783489720137410539278/ 完成一个app应用后,肯定是要提交的,下面聊一下关于向Ap ...
- CentOS6.5搭建MySQL5.1主从复制
环境: mysql> select version(); +------------+ | version() | +------------+ | 5.1.73-log | +-------- ...
- Ubuntu14.04怎样使用root登录
1.打开终端 2.sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 3.在弹出的编辑框里输入:greeter-show-manua ...
- OE context 传参数
来自:http://shine-it.net/index.php/topic,16360.0.html 有个需求想many2one字段关联显示的value在各个模块显示不同的值. 如果直接该rel_n ...
- Field 'id' doesn't have a default value问题解决方法
Field 'id' doesn't have a default value问题解决方法 突然想温习温习对数据库的读写.于是就用mysql建了一张单独的表(见代码1),用Hibernate写了个应用 ...
- 〖Linux〗使用ssh登录远程主机,并在本地打开远程图形界面
1. 修改/etc/ssh/sshd_config文件,设置允许TCP转发和X11转发 AllowTcpForwarding yes X11Forwarding yes 2. 登录无图形远程主机,并允 ...
- iOS开发-多线程开发之线程安全篇
前言:一块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源,比如多个线程访问同一个对象.同一个变量.同一个文件和同一个方法等.因此当多个线程访问同一块资源时,很容易会发生数据错误及数据不安 ...
- 【转帖】Dubbo:来自于阿里巴巴的分布式服务框架
http://www.biaodianfu.com/dubbo.html Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被 ...
- js实现同时提交多个表单
http://www.jb51.net/article/17284.htm 两种方法: 1.使用ajax异步提交表单.方法简单,jQuery插件等都能实现. 2.使用iframe.方法很原始,较麻烦. ...