持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第24天,点击查看活动详情
选择题
引用:引用是对象的别名,并没有给它开辟空间,引用在声明的时候就要初始化,而指针不用,一但引用之后,该引用就不可以引用其他的对象,但是它指向的空间是可以改变的,没有空引用,但有空指针。
析构函数可以在类体内定义,可以先在类类内声明,在类外定义,一个类只有一个析构函数,因为该函数不能重载,析构函数的函数名和类名相同,只不过是加了一个
~,
首先要有
operator这个关键字,然后加上+运算符,同时要有参数,参数是类,同时还要有返回值,对于加法运算符的重载,它要返回加的结果,所以返回值也是一个类。
c1是个类会调用构造函数,c2是个指针并不会调用构造函数,c3也是一个指针,但是用new的时候会自动调用构造函数,c4是c1的别名并没有调用构造函数。
类和c语言中的结构体还是不同的,c语言中的结构体里面不能声明函数。而类里面就是可以。类和对象的关系就是抽象和具体的关系。
一个类可以实例化出很多对象,类是对某一类对象的抽象,类和对象的关系是一直数据类型与变量的关系。
这段代码有什么错误呢? 首先
delete释放的空间应该为动态开辟,当该对象没有动态开辟,不就错误了嘛,即使它是动态开辟的空间,当delete的时候,会自动调用析构函数,这样吧会造成死递归。其次,this的类型为类* const类型,意思就是this指针的本身的值是不可以改变的,那么this=NULL该代码就是错误,在编译的时候就会报错。
类可以有多个构造函数,但是每个类只会有一个析构函数,而对于拷贝构造并不是每个类都必须的,当我们没有自己实现的时候,会生成默认的拷贝构造函数,对于每个类都有一个什么类型的构造函数是我们所不能确定的。
静态的成员函数没有this指针,友元函数也没有this指针,不是类从成员函数也没有this指针。
堆的开辟需要向操作系统递交请求,所以受操作系统的限制,一般来说栈的大小都是很小的。 堆必须要动态的申请,栈既可以动态的申请也可以静态的分配。
编程题
首先把m向左移动j位,返回和n和m
|的结果就行。
对于该题,我们应该找到该数一半的位置位于哪两个素数之间,然后从中间向两边进行查找判断 怎么找该数一半所处的位置:如果一半等于素数,就返回该素数的位置,如果处于两个素数中间就返回前面那个素数的位置。怎么查找判断:首先记录下来该位置a,和下一个位置b(a+1),如果a+b>n,a--; 如果a+b<n,b++;相等就找到了这两个素数的位置。