原创 const 非const 引用 非引用

2008-12-3 22:49 2618 3 3 分类: 工程师职场

(1)非const非引用,如下:


#include<iostream.h>


int add(int val);                //非const 非引用形参函数声明

main()
{
 const char v1='a';


char m='b';
 const int v2=31;
 int k="32";
 int v3=add(v1);                             //v1可换成m,v2,k
 cout<<"v3 is "<<v3<<endl;


 return 0;
}



int add(int val)
{
 return val;
}


此情况可给形参传递const实参,也可传递非const实参,也可以是不同类型,当然要能隐式转换。可以修改实参,但调用结束实参值无变化。


(2)const 非引用形参


#include<iostream.h>


int add(const int val);                //const 非引用形参函数声明
main()
{
 const char v1='a';
    char m='b';
 const int v2=31;
 int k="32";
 int v3=add(v1);                               //v1可换成m,v2,k

 cout<<"v3 is "<<v3<<endl;


 return 0;
}



int add(const int val)
{
 return val;
}


此情况可给形参传递const实参,也可传递非const实参,也可以是不同类型,当然要能隐式转换。只不过不能对传递来的实参进行修改。


(3)非const 引用形参


#include<iostream.h>
int add(int &val);                //非const 引用形参函数声明
main()
{
 const char v1='a';
    char m='b';
 const int v2=31;
 int k="32";
 int v3=add(k);                         //此时不可用v1,m,v2替换
 cout<<"v3 is "<<v3<<endl;


 return 0;
}



int add(int &val)
{
 return val;
}


即非const引用形参只能与完全同类型的非const对象关联。可以修改实参,调用结束后实参值也随之改变。


(4)const 引用形参


#include<iostream.h>


int add(const int &val);                //const 引用形参函数声明
main()
{
 const char v1='a';
    char m='b';
 const int v2=31;
 int k="32";
 int v3=add(v1);                                          //v1可换成m,v2,k

 cout<<"v3 is "<<v3<<endl;


 return 0;
}



int add(const int &val)
{
 return val;
}


此情况同(2).


指针部分待续。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条