社区
C++ 语言
帖子详情
有个语法不懂,帮忙解释一下,是const的
discory
2004-12-15 01:20:08
int max const ();
为什么max放在const前面,这个const表示什么啊
我知道有const int *y,int *const y不知道上面是什么意思
...全文
342
29
打赏
收藏
有个语法不懂,帮忙解释一下,是const的
int max const (); 为什么max放在const前面,这个const表示什么啊 我知道有const int *y,int *const y不知道上面是什么意思
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
29 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chinarouter
2004-12-16
打赏
举报
回复
同意返回值是const类型.
look01
2004-12-15
打赏
举报
回复
为了语法而学c++的典型例子
lkforever
2004-12-15
打赏
举报
回复
随便举个例子,比如某个类定义里面有这么两个函数
const ClassName Fun1()
{
reuturn *this;
};
ClassName Fun2()
{
cout<<"call Fun2"<<endl;
};
一般函数前面的const只出现在用户自定义的返回类型 ClassName 中,如果返回值是 int,char,double之类的类型,那么加上const虽然没有错误,但确实画蛇添足
加上这个const后,意思就是返回值是常量。
这个时候如果执行下面的程序
ClassName A;
(A.Fun1()).Fun2()
编译器就会报错,因为A.Fun1()返回的是一个常量,所以它不允许对自身进行任何改变,(比如它的某个成员的值),而这个时候,Fun2并没有声明为const形式,所以编译器并不知道Fun2()并不会改变任何值,所以这是不允许的。
但如果我们重新定义一下Fun2()为下面的样子
ClassName Fun2() const
{
cout<<"call Fun2"<<endl;
};
那么,这个时候程序就能正确通过编译了
楼主那种写法应该是错误的
一般函数中最多有5个const吧(假设只有1个参数的话)
const ClassName* const FunctionName(const Type* const TypePoint) const
不过在VC6里,如果出现 const ClassName* const ,前面的const就没用了
好象第一个const在返回类型是指针的时候就失去了作用。
hncdsun
2004-12-15
打赏
举报
回复
狂晕~!
55555555555555555
freeask
2004-12-15
打赏
举报
回复
晕死
这都会写错!!!!
discory
2004-12-15
打赏
举报
回复
好象很少有书介绍const的用法和含义,都是
讲const指针的,哪个大虾能介绍一本介绍const的书
zjraycj
2004-12-15
打赏
举报
回复
const值只能赋给const形参或const必须在定义时初始化
xiaoqbruo
2004-12-15
打赏
举报
回复
"返回值是const,也就是不能修改函数的返回值"
不懂,我想知道,返回值是const,或不适const,有什么出别。我没看出来
dragonzxh
2004-12-15
打赏
举报
回复
在汗下,原来是写错了
qinzh130
2004-12-15
打赏
举报
回复
类型+const+函数名()
与const+类型+函数名()是同一意思,都是指返回值为const
类型+函数名()+const则指该函数为const函数
greenteanet
2004-12-15
打赏
举报
回复
返回值是const,也就是不能修改函数的返回值
xiaoqbruo
2004-12-15
打赏
举报
回复
class B
{
public:
int ttt;
int const ffff () {
ttt = 9;
return 6;
}
};
这const怎么解释
lovessm
2004-12-15
打赏
举报
回复
靠,原来写错了。
xiaoqbruo
2004-12-15
打赏
举报
回复
class B : public A
{
public:
int ttt;
int const ffff () {
ttt = 9;
return 6;
}
};
这怎么解释?
james930
2004-12-15
打赏
举报
回复
搂主我看是写错了的!的确没见过这种写法的!楼上的这位,这个就是表示是const成员函数,非const成员函数是不能调用const对象。另外构造函数和析构函数是不允许有const申明的。
discory
2004-12-15
打赏
举报
回复
呵呵,各位大虾,是我写错了,是int max() const,谢谢
还有个问题象楼上的bool operator==( const IntArray& ) const
这句怎么解释啊
angelrifle
2004-12-15
打赏
举报
回复
没那个写法
编译不通过
dragonzxh
2004-12-15
打赏
举报
回复
汗,不好意思,是偶看错...
dragonzxh
2004-12-15
打赏
举报
回复
to hxblvc(学习...) ( )
看看//#3a,//#3b
licki
2004-12-15
打赏
举报
回复
这种用法在类的定义中出现。
表示const成员函数,表示该函数不改变类数据成员。
加载更多回复(9)
精讲ES6
语法
及新增
课程目标: 本课程带领大家详细学习ES6
语法
及新增,学vue、react等必会的知识点,为以后学习框架打下坚实的基础 课程简介: 1,babel转码器的安装与配置 2,ES6的介绍 3,let声明变量详解 4,
const
声明变量详解 5,...
C语言面试题四——慧通篇&&嵌入式必考题
什么是预编译 何时需要预编译: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的...上述三个有什么区别? char *
const
p; //常量指针,p的值不可以修改
万字详解C++避坑指南总结
总结一些C++晦涩难
懂
的
语法
现象,解释其背后原因,作为防踩坑之用 2. 和一些其他的编程语言进行比较,列举它们的优劣 3. 发表一些我自己作为C++程序员的看法和感受C++有一个很大的历史包袱,就是C语言。C语言诞生...
面试题/经验积累
es6 以前,都是用 var 关键字来标识,这样
有个
变量提升的坑。在 es6 中,添加了 let 和
const
两个关键字,let 定义变量,
const
定义常量,并且添加了块级作用域。ES6 新增了let命令,用来声明变量。它的用法类似于...
神奇!C语言还可以这样用来仿真
前面的话本文介绍如何在matlab的simulink中嵌入C语言进行多输入多输出的仿真;这样暂时脱离硬件平台的问题,快速验证算法的可行性,从而提高效率,总体来说,simulink挺香的,不...
C++ 语言
64,683
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章