2.C++基础+类和对象(下)

在函数调用的时候,展开内联函数直接执行,不建立栈帧
换成函数就没问题了,先有结果再算
这样debug也可内联展开
编译器听不听看编译器自己,因为展开是有代价的
可执行程序变大,进程就等这个程序了,所以不合适就不听就很好
内联函数编译器认为不需要地址,因为都在调用地方展开了,编译的时候只有声明,拿不到地址,这应该call 地址 但是没有地址,就变成call 地址 内敛属性就没了,但是拿这个地址去找又找不到,因为包了.h认为这个函数是内联,不会把他的地址放进符号表,内联直接放到。h,方便展开
代码少且频繁调用适合内联
传void*两个也都不匹配C语言默认void*可以给任意指针C++不行,nullptr可以转换成任意类型指针,但不能转换成整形,值是空的但是类型可以任意转,指针专用,以后空指针用nullptr

写在类里面,肯定是栈push不是队列push,所以写push

接口就是函数
参数也是年月日,成员变量也是,混了
C++一般给成员变量特殊标记
一眼就能看出谁是成员变量,成员变量爱定义在哪都行,只要在类里就行,一般函数在上变量在下
也可用struct定义类,因为C++的struct也升级成类,区别是struct默认访问限定符是公有
直接用类名定义可以,这样定义也可以,兼容C用法
C++不用typedef
这个可以直接定义节点


这个函数定义在这默认是内联
除了在类里定义也进行声明和定义的分离,就是写到类外面任何一个变量我都会找他的出处,这是个全局函数-year去哪去找,不会到类里去找,其实类也形成了一个新的类域
所以不到里面去找就找不到,所以声明定义分离,,指定我是这个类的成员函数,所以这是私有的我也可以直接访问,编译器一看这是类的成员函数,我用一个局部变量除了在局部找还在类域找
在类里面声明外面定义就不是内联,类里面直接定义就是内联

类域。命名空间,只影响名字隔离,不影响生命周 期
指定了,说明是成员函数,需要去域找
默认现在函数内的局部找,找不到再全局找如果指定了类域,才去它里面找
类域没有展开
对变量来说,声明和定义区别是:开不开空间
如果是定义就有空间,但是没空间,不能这么访问
类型实例化一个对象
,一个类可以实例化多个对象

更多推荐
所有评论(0)