社区
C++ 语言
帖子详情
参数是const函数?
Primer__
2014-07-31 09:28:28
《C++Primer》第四版
7.2.1 非引用形参
1.指针形参
如须要保护指针指向的值,则形参须定义为指向const对象的指针。
-------
问题:
1.
void use_ptr(const int *p)
{ }
上面函数,参数是const,怎么调用。
给个实例!
...全文
101
3
打赏
收藏
参数是const函数?
《C++Primer》第四版 7.2.1 非引用形参 1.指针形参 如须要保护指针指向的值,则形参须定义为指向const对象的指针。 ------- 问题: 1. void use_ptr(const int *p) { } 上面函数,参数是const,怎么调用。 给个实例!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaohuh421
2014-08-01
打赏
举报
回复
int value = 0; use_ptr( &value) ;
bear234
2014-07-31
打赏
举报
回复
void use_ptr(const int *p) { cout<<*p; // correct *p = 1; // error because p is const } const pointer means you CANT change the value which is pointed by this pointer
蠓虫带着秤砣飞
2014-07-31
打赏
举报
回复
是修饰符。意思是传进来的参数不可修改。 用法和没有const的一样。
C++类中
const
成员
函数
与非
const
成员
函数
的调用规则
const
修饰类的成员
函数
将
const
修饰的类成员
函数
称之为
const
成员
函数
,
const
修饰类成员
函数
,实际修饰该成员
函数
隐含的this指针,表明在成员
函数
中不能对类的任何成员进行修改。 1.
const
对象可以调用非
const
成员
函数
吗? 2.非
const
对象可以调用
const
成员
函数
吗? 3.
const
成员
函数
内可以调用其它的非
const
成员
函数
吗? 4.非
const
成员
函数
内可以调用其它的
const
成员
函数
吗? 总结 调用的依据其实是传隐含的this指针的过程; 在使用
const
的时
const
函数
参数
、成员
函数
限制
总结:
const
修饰的变量、
函数
,都不能修改其所在对象相关的内容,包括其成员变量中的内容。 1、
const
函数
参数
: class Base { public: void test() { std::cout<< " test in base\n"; } }; void MyTest(
const
Base& b) { b.test(); // 这里编译报错,
const
对象调用非
const
成员
函数
。 } 原因:
const
对象,只能
const
参数
,
const
返回值与
const
函数
在C++程序中,经常用
const
来限制对一个对象的操作,例如,将一个变量定义为
const
的:
const
int n=3; 则这个变量的值不能被修改,即不能对变量赋值。
const
这个关键字经常出现在
函数
的定义中,而且会出现在不同的位置,比如: int strcmp (
const
char *str1,cons
【C++】拷贝构造
函数
中的形参是
const
引用类型的,为何需要引用且为
const
引用?
根本原因 在c++中,传值时就是形参是实参的一份拷贝,传引用时形参和实参是一个东西。 直接原因 由于(根本原因)形参是实参的一份拷贝,如果直接传递值给拷贝构造
函数
而不是传引用,那么形参对象会拷贝实参对象,这个拷贝过程又调用拷贝构造
函数
(第二次),在第二次调用拷贝构造
函数
时,形参对象继续拷贝实参对象,继续调用拷贝构造
函数
(第三次)…陷入死循环。 因此需要传引用给拷贝构造
函数
。 为何需要
const
引用? 在这里没有太复杂的原因,就是为了表明拷贝构造
函数
中没有对传递进来的对象做任何修改,也是防止拷贝构造
函数
对对象
const
修饰
函数
参数
const
修饰
函数
参数
(1)传递过来的
参数
及指针本身在
函数
内不可变,无意义! void func(
const
int var); // 传递过来的
参数
不可变 void func(int *
const
var); // 指针本身不可变 表明
参数
在
函数
体内不能被修改,但此处没有任何意义,var本身就是形参,在
函数
内不会改变。包括传入的形参是指针也是一样。 输入
参数
采用“值传递”,由于
函数
将自动产生临时变量用于复制该
参数
,该输入
参数
本来就无需保护,所以不要加
const
修饰。 (2)
参数
指针所指内容为常量不可
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章