VC从入门到精通中的第5章
发表在C语言图书答疑 2009-11-16
是否精华
版块置顶:
你好,我在学习VC从入门到精通中的第5章内容,第127页中讲到this指针,按我的理解,this指针相当于一个常量指针,也就是说这个指针指向的地址不可以变化,但其数据值可以改变。这样理解对吗?敬请指教!!!


这样的话,就是说,在定义类对象时,只为类对象的数据成员分配空间,类中的方法,是所有类共享的,并不分配空间,而是通过类方法中的第一次隐含的this指针来识别调用,是这样的,我的理解,敬请指教!!!,谢谢。



还有另外一个小问题,在114页中有这样一个函数:char* GetUsername() const{return (char*)m_Username;}
而在128页中有这样一个运算符重载的函数定义头CBook operator+(const CBook &book),我想问的是,在这两个地方const关键字所出现的位置并不统一,114页是出现在函数声明的最后面,而在128页的函数参数定义中则出现在最前面,这有什么区别吗?敬请指教!!!
分享到:
精彩评论 2
学分: LV1
2009-11-16
沙发
@返回值为常量的函数:
****形如:
const int func(); 
****介绍:
说明函数的返回值是不能被修改的。
在取得返回值时应用const int a = func();它的作用是:可以根据函数的返回值,来定义变量的是否有const关键字修饰。

@常函数
****形如:
int func() const; 
****介绍
只能用于类的成员函数中,说明函数是不能修改类中成员值的。

//////////////////////////////////////////////////////////////////////////////////////
void func(const int a); 
(这个可以参见之前回答您关于const变量的问题,其中有详细说明)
学分: LV1
2009-11-16
板凳
this指针的作用是确定当前使用的是哪个对象。
你所描述的基本上是对的,不过有一点需要修改一下的是:this指针并不是常量指针。如果它是常量指针的话,那么它只能指向一个地址,例如指向对象a,那么再定义对象b时,this还怎么指向b呢? 所以this指针不是常量指针。

this就是一个普通的指针,但是为什么它可以调用每个类中的成员,这就要先去理解虚函数的作用。
通过虚函数,父窗口可以调用子类中成员,这个就是this指针的最基本的实现条件。
首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照