有个语法不懂,帮忙解释一下,是const的

discory 2004-12-15 01:20:08
int max const ();
为什么max放在const前面,这个const表示什么啊
我知道有const int *y,int *const y不知道上面是什么意思
...全文
342 29 打赏 收藏 转发到动态 举报
写回复
用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)

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧