持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第23天,点击查看活动详情
选择题
内联函数没有函数栈帧的销毁,它的前提是在函数没有循环,递归以及大量的代码。结构不能太复杂。
重载函数的定义,在同一个作用域内,函数名相同,参数的类型或者个数不相同,这样构成的函数为重载函数。
a构造了1次,b构造了一次,c构造了3次,p是一个数组,数组里面都是指针类型,并没有生成类。
赋值运算符只能作为类的成员函数重载,默认的赋值重载只能进行值的复制,重载的赋值构造只有一个形参,拷贝构造和赋值运算符的重载是两个不同的函数。
静态的成员不能在类的内部初始化,必须在全局进行初始化,静态的成员也是可以受访问限定符的限定符的限制静态成员为该类所有对象共有的,可以直接由类名直接访问,但是要注意访问限定符哦,当然也可以由对象进行访问。
ad是个指针,指向一个连续的空间,但是它并没有实例出对象,就没有调用构造函数。
当我们没有自己实现析构函数的时候,系统会自动生成默认的析构函数,析构函数是没有参数的。
该程序是没有错误的,
myClass *a = new myClass();这里的小括号是用来初始化的,显然它用的是默认值,a->foo();这个也没有错误,会调用foo()进行释放动态开辟的空间。
构造函数可以有形参,但是析构函数没有形参,不管是析构还是构造函数都没有任何的函数模型。
对于模板,都是一个类型的
T,当没有显示的实例化的时候,该函数的实参的类型必须要形同,要不然模板在实例化的时候类型会错误,讲不能就行模板的实例化。当显示的说明模板参数类型的时候,就已经实例化了,比如D选项。
编程题
首先我们判断哪个节点大,找到大节点的父节点和另外一个节点进行比较,相等就是共同的祖先,否则再继续判断,判断父节点和另一个节点,直到相等。
从第一位比特位开始查找,把连续的1的个数记录下来,不断比较求出最大的即可。此处用到位运算,
>>右移i位然后和1&判断是否为1。