C++类初探(二)

        这几天猫坏了,上不了网,郁闷死了。天气越来越热了,坐那都感觉不舒服,哎!

        耽搁了几天没写,书已经看到后面了,但是还是得回过头来复习下,整理下思路心得。

        每个类里都有隐含的this指针,类的const成员函数修饰的就是这个指针。类中的函数调用本类的成员就是通过this指针,但是这个this指针是隐含的。在非const成员函数中,this是个指向类类型的const指针,可以改变this指向的值,但是不能改变this指针本身,当然const成员函数中的this就是指向const类类型的const指针,两者都不能修改。尽管const成员函数不能修改类对象,但是如果一定要修改的时候某成员时,把该成员定义成mutable即可。

        类的作用域问题,大家都知道局部变量能覆盖全局变量,全局变量就会被屏蔽,但是可以通过全局作用域来启用他,即::parms。

        类的初始化通过类的构造函数进行,一个类可以定义多个构造函数进行重载。构造函数初始化式只在构造函数的定义中而不是声明中出现。在类中定义成员时,必要在类构造函数初始化列表中定义。不然,一个const int x;成员,如果没在初始化列表中定义,而在构造函数中定义,要把一个值赋值给x,人家是const类型的,马上报错。所以const和引用只能初始化,但是不能赋值。而且当定义了多个构造函数时,必须确保const和引用在每个构造函数中都已经初始化。      当一个类哪怕只定义了一个构造函数,编译器也就不会在自己合成默认的构造函数。

        友员:类定义的private成员或成员函数是外部不能访问的,只能由类的内部成员访问,但是,可以在类中定义一个友员,则该友员可以访问该类的private成员和成员函数。

        类的static成员,类只有在定义了对象后才分配存储空间,而static成员则在类未定义变量时就分配存储空间,且当类定义多个对象时,static成员还是原来的那个存储空间,所有定义的对象共享这个存储空间。因此,即使类未定义对象,也可通过classname::staticparms方式来访问static成员。由于多个对象共享static成员,所以该成员只是类的一部分,而不是对象的以部分,因此,static 函数没有this指针。还有一类特殊的const static成员,他能在类里定义的时候直接赋值,这里有个误区,在大多数人使用的VC6编译器下给const static成员赋值将报错,但是在DEV C++下则不会。PRIMER上支持可以赋值。最近发现VC6越来越多的错误,但是现在大学里大部分还是使用的VC6。

        水平有限,错误难免,希望路过的大侠们帮忙指出,小生不胜感激。       

       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值