社区
新手乐园
帖子详情
再讨论const int foo()的意思
winner8080
2007-04-06 11:45:55
const char &foo()
到底是可以让const对象调用, 而const对象也只能调const函数
还是
const表示不能修改返回的char&
还是二者兼有
谢谢了
...全文
271
4
打赏
收藏
再讨论const int foo()的意思
const char &foo() 到底是可以让const对象调用, 而const对象也只能调const函数 还是 const表示不能修改返回的char& 还是二者兼有 谢谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yutaooo
2007-04-06
打赏
举报
回复
这个问题,不要孤立的在非成员函数中讨论。因为,在普通函数中这样用是错误的。
在类中的例子:
class A {
public:
const char & foo() const;
private:
char value_;
}
void main() {
A a;
A.foo() = 't'; // 这就不行。这主要是因为,前一个const,指定了返回的引用的对象不可
// 修改。
}
后一个const 对一个非成员函数无意义,对非成员函数是不能这样使用的。这也就是说,它只使用在成员函数上。我想,你的第一个问题指的是这个。它说明this指针有一个const修饰。
chenyu2202863
2007-04-06
打赏
举报
回复
返回const引用
0黄瓜0
2007-04-06
打赏
举报
回复
const char &foo()
const表示不能修改返回的char&
char& foo()const
让const对象调用.
其实非const对象也可以调用(非const对象可以转化为const对象).
所以这个const保证了foo不会修改到调用它对象.
hellox
2007-04-06
打赏
举报
回复
去看看effective c++ 21条..
const
int
*,
const
int
*
const
和
int
const
*有什么区别?
我总是搞砸了如何正确使用
const
int
* ,
const
int
*
const
和
int
const
* 。 是否有一组规则定义您可以做什么和不能做什么? 我想知道在分配,传递给函数等
用最好的方法去理解
const
int
*,
int
const
*以及
int
*
const
我觉得遇到这种题,从“结合律”的角度来看就很好理解,先看两个简单的,比如
const
int
a 和
int
const
a。
const
int
a里的
const
和
int
结合,是一个意思是一个整型的常量,a作为一个整型常量,是不能改变的;再看
int
const
a,
const
和a结合,意思也是 a是一个常量,不能被改变。综上所述,
const
int
a 和
int
const
a作用是一样的。
const
int
& 和
int
的区别
最近看函数的返回值时总是出现这两种函数的返回值。
const
int
& get() {return x;}
int
get() {return x;} 下面就关于这两种函数的返回值做一个小的笔记。
const
int
& 是返回这个数值的一个常量的引用。 而
int
是返回这个数值的一个拷贝。 1.
int
是进行拷贝构造,而
const
int
& 是返回的引用
const
关键字及其作用(用法),C语言
const
详解
1、
const
的普通用法
const
int
n = 10; 意思很明显,n是一个只读变量,程序不可以直接修改其值。这里还有一个问题需要注意,即如下使用:
int
a[n];在ANSI C中,这种写法是错误的,因为数组的大小应该是个常量,而n只是一个变量。 2、
const
用于指针
const
int
*p;
int
const
*p;
int
*
const
p; 在最后的一种情况下,指针是只读的(即p只读),而在另外两种情况下,指针所指向的对象是只读的(即*p只读)。
const
是一个左结合的类型修饰符
class中static
const
int
的使用
传统认识我们都知道,对于class 中static
const
int
的变量,可以在类中进行初始化,并省去外部的定义,向下面的这种方式;此时,编译,执行均是正确的。class test { static
const
int
tmp_
int
= 1; public: void pr
int
() { pr
int
f("%d", tmp_
int
); //
foo
(tmp_
int
);
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章