一.静态成员
1.1 了解静态成员


我们发现静态变量并不属于类本身,类的作用只是给静态变量了一个类域,使其访问受限。


1.2 应用



二.内部类
1.1 了解内部类
如果⼀个类定义在另⼀个类的内部,这个内部类就叫做内部类。内部类是⼀个独⽴的类,跟定义在 全局相⽐,他只是受外部类类域限制和访问限定符限制,所以外部类定义的对象中不包含内部类。
我来解释一下这句话,就是内部类也是独立的,只是受到了类域的限制,并不属于外部类。
大家可以看这个例子就明白了,结果是4,并没有算内部类B中变量所占的空间。
内部类默认是外部类的友元类。
内部可以访问到通过实例化访问外部的私有化变量,但是外部类不能访问内部的,可以说就是外部类就是为内部类服务的。
内部类本质也是⼀种封装,当A类跟B类紧密关联,A类实现出来主要就是给B类使⽤,那么可以考 虑把A类设计为B的内部类,如果放到private/protected位置,那么A类就是B类的专属内部类,其他地⽅都⽤不了。
1.2 应用
我们上面的那个牛课题就可以进一步改善了。
可以改成这样,外部类服务内部类,此时可以让它更加的安全和简洁。
三.匿名对象
1.1 了解匿名对象
⽤ 类型(实参) 定义出来的对象叫做匿名对象,相⽐之前我们定义的 类型 对象名(实参) 定义出来的 叫有名对象匿名对象⽣命周期只在当前⼀⾏,⼀般临时定义⼀个对象当前⽤⼀下即可,就可以定义匿名对象。
匿名对象顾名思义就是没有名字的对象,比如我们主函数中的前两行就是两个匿名对象,他的声明周期只在它的那一行,那一行运行完了,就析构了,和临时对象一样都具有常兴,不能被普通的引用指向,可以被const的引用指向
下面的倒数第三行,const引用const会延长匿名对象的声明周期,匿名周期就变成了aa1这个引用的声明周期了,你可以理解为匿名对象完成使命后它的那一行结束之后,自己就关机了,const使他重新开机了,就是延长了声明周期了,匿名周期就变成了aa1这个引用的声明周期了。
1.2应用
就是我们上图中的最后一行,直接调用函数,不用使用实例化去调用,使得代码更加简洁。
不仅有这一个作用,我们还可以做缺省值。
如上图,做了缺省值。
五.结束语
感谢大家的查看,希望可以帮助到大家,做的不是太好还请见谅,其中有什么不懂的可以留言询问,我都会一一回答。 感谢大家的一键三连。