如果输入参数采用“指针传递”,那么加 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 修饰可以防止意外地改动该指针,起 到保护作用的更多相关文章

  1. jenkins Build Flow job 输入参数获取和传递

    jenkins Build Flow job 输入参数获取和传递 如果设置Build Flow的job,怎样获取手工输入的参数. 1. 指定构建参数 job配置中,勾选"参数化构建" ...

  2. 字符串输出输入函数,const修饰符,内存分区,动态内存管理,指针和函数,结构体

    1.字符串输出输入函数 读入字符串的方法: 1) scanf 特点:不能接收空格 2) gets 特点:可以接受含有空格的字符串 ,不安全 3) fgets(); 特点:可以帮我们自动根据数组的长度截 ...

  3. [Reprint]C++函数前和函数后加const修饰符区别

    c++中关于const的用法有很多,const既可以修饰变量,也可以函数,不同的环境下,是有不同的含义.今天来讲讲const加在函数前和函数后面的区别.比如: 01 #include<iostr ...

  4. C++函数前和函数后加const修饰符区别

    class Test(){ public: Test(){} const int foo(int a); const int foo(int a) const; }; 一.概念 当const在函数名前 ...

  5. C++ 成员函数前和函数后加const修饰符区别

    博客转载自: https://www.iteblog.com/archives/214.html 分析以下一段程序,阐述成员函数后缀const 和 成员函数前const 的作用 #include< ...

  6. C++函数后面加const修饰

    声明一个成员函数的时候用const关键字是用来说明这个函数是 "只读(read-only)"函数,也就是说明这个函数不会修改任何数据成员(object). 为了声明一个const成 ...

  7. 函数重载不仅仅是看其参数,还要看是否有const修饰

    比如QString有两个函数,可以堂而皇之的存在,原因就在于有了const修饰以后,编译器不把两个函数当作同一个函数名了: QChar * data() const QChar * data() co ...

  8. const修饰指针的三种效果

    当用const进行修饰时,根据const位置的不同有三种不同效果. 判断的标准是:const修饰谁,谁的内容就是不可变的. 1 const int *p = &a; const修饰*p, *p ...

  9. 如果参数是指针,且仅作输入用,则应在类型前加 const,以防止该 指针在函数体内被意外修改

    如果参数是指针,且仅作输入用,则应在类型前加 const,以防止该 指针在函数体内被意外修改. #include <iostream> /* run this program using ...

随机推荐

  1. javascript - = 、==、===、!=、!==、&&、||、!

     = .==.===.!=.!==.&&.||.! /* * = .==.===.!=.!==.&&.||.! */ var a = 1; var b = 1; var ...

  2. 流编辑器sed

    sed与grep一样,都起源于老式的ed编辑器,因其是一个流编辑器(stream editor)而得名.与vi等编辑器不同,sed是一种非交互式编辑器(即用户不必参与编辑过程),它使用预先设定好的编辑 ...

  3. 静态库与动态库的制作以及程序的动态函数库解析ldd;ldconfig与/etc/ld.so.conf

    静态库的制作步骤: (1)gcc -c mylib.c -o mylib.o (2)ar rc libmylib.a mylib.o 动态库的制作步骤: gcc -shared mylib.c -o ...

  4. 从业者生存质量报告之,教育行业里的IT男

    当教育遇上互联网,非常多传统教育机构都卡在了技术这道门槛上. 一位教育机构创始人曾这样感叹说:"技术须要文化基因.氛围.教育行业不知道技术这帮兄弟须要什么样的文化,什么样的工作氛围,怎么管理 ...

  5. 遇到了一个问题,php数组的

    这两天整一个数据,捯饬了好久... 需求是这样的   <?php $a = array (); $a[] = ['week'=>'1','day'=>'1']; $a[] = ['w ...

  6. Linux中setup命令command not found如何解决?

    1.安装setuptool    yum -y install setuptool 2.系统服务管理  yum -y install ntsysv 3.setup中配套的防火墙设置也得装上去,不然会出 ...

  7. How to add a button in the seletions "More"

    <?xml version="1.0" encoding="utf-8"?> <openerp> <data> <re ...

  8. chrome 如何官网下载谷歌浏览器离线安装包

      如何官网下载chrome谷歌浏览器离线安装包 CreateTime--2017年7月4日08:38:30Author:Marydon 参考链接:http://jingyan.baidu.com/a ...

  9. WebService注解

    package cn.itcast.service; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.W ...

  10. Sphinx高亮显示关键字

    选取程序中使用的一部分代码: public function buildExcerptRows($ids) { $options = array( 'before_match' => '< ...