当前位置: 首页 > news >正文

门户网站建设意义杭州谷歌推广

门户网站建设意义,杭州谷歌推广,怎么通过网络推广,免费公司logo图标🌈一、选择题❤1.下列哪一个是析构函数的特征( )。A: 析构函数定义只能在类体内 B: 一个类中只能定义一个析构函数 C: 析构函数名与类名相同 D: 析构函数可以有一个或多个参数答案:B答案解析:析构函数是构造函…

🌈一、选择题

1.下列哪一个是析构函数的特征( )。

A: 析构函数定义只能在类体内    B: 一个类中只能定义一个析构函数
C: 析构函数名与类名相同       D: 析构函数可以有一个或多个参数
答案:B

答案解析:析构函数是构造函数的逆函数,它的功能是用来释放一个对象,它也是一种特殊

的构造函数。它具有如下特点:

  1. 函数名同类名,并前边加修饰符~。

  1. 定义该函数时不加返回类型。

  1. 该函数无参数。

  1. 该函数通常是系统在释放所创建对象时自动调用的。

  1. 一个类中只能有一个析构函数。

  1. 析构函数既能在类内定义,也能在类外定义。


2.如果有一个类是 myClass , 关于下面代码正确描述的是( )。

myClass::~myClass(){
delete this;
this = NULL;
}
A: 正确,我们避免了内存泄漏      B: 它会导致栈溢出
C: 无法编译通过                D: 这是不正确的,它没有释放任何成员变量
答案:C

答案解析:

  • 析构函数的作用:当对象生命周期结束后,收回对象占用的资源。

  • delete 的作用:用于收回new分配的内存空间。

  1. 再来看delete this这句代码: 在析构函数中delete this时,代码是可以通过编译的。但是,如果代码中具体创建了这个类的对象时,代码会在运行中崩溃。 delete实现是通过调用析构函数完成的,也就是会形成死循环造成栈溢出,并且delete清除的是堆上(new开辟的)的对象,但是不是所有的对象都是堆上开辟的在没有new的前提下对资源进行delete,就会导致运行崩溃。 但是这个还不是最关键的。

  1. 在析构函数中,this = NULL;

  1. 这一句会直接导致编译失败,因为 this指针的类型为 类类型 * const 。this指针本身的值是无法修改的。


3.设已经有 A,B,C,D 4个类的定义,程序中 A,B,C,D 析构函数调用顺序为()

C c;
void main()
{
A*pa=new A();
B b;
static D d;
delete pa;
}
A: A B C D     B: A B D C
C: A C D B     D: A C B D
答案:B

答案解析

  • 对于类A,是建立在堆上的对象指针pa,手动释放

  • 对于类B,是建立在栈上的对象 , main函数结束就释放

  • 对类C在静态存储区创建了一个对象c程序结束时候释放

  • 对类D也是在静态存储区建立对象d但是局部变量程序结束时候释放析构函数调用顺序。

首先手动释放pa, 所以会先调用A的析构函数,其次是C,B, D,编译器先构造的是全局对象C,然后是静态局部对象D,最后是普通对象B,所以三者的析构顺序完全相反,B->D->C,综上来说就是A->B->D->C。答案是B。


4.假定有类 AB ,有相应的构造函数定义,能正确执行()

AB a(4),b(5),c[3],*p[2]={&a,&b};
语句,请问执行完此语句后共调用该类的构造函数次数为( )。
A: 5    B: 4
C: 3    D: 9
答案:A

答案解析:

只有给对象分配内存才调用构造函数 AB a(4) 定义对象a, 调用了带一个参数的构造

AB b(5)跟上面的性质类似, 调用了带一个参数的构造

AB c[3] 跟上面的性质类似, 定义对象数组,调用无参构造3次

AB *p这至是一个指针,没有指向任何空间,更么有分配内存,不会调构造


5.下面有关类的静态成员和非静态成员,说法错误的是( )。

A: 静态成员变量存在与数据段,非静态成员需要实例化才会分配内存
B: 非静态成员函数中可以直接访问类中静态的成员
C: 静态成员函数中能访问非静态的成员
D: 非静态成员的生存期决定于该类对象的生存期,而静态成员生存期则与程序生命期相同
答案:C

答案解析:

静态成员变量:
1、所有对象共享同一份数据;
2、在编译阶段分配内存;
3、类内声明,类外初始化。
静态成员函数:
1、所有对象共享同一个函数;
2、静态成员函数只能访问静态成员变量。

A选项:静态成员存在于内存,非静态成员需要实例化才能分配内存。

B选项:静态成员属于类,非静态成员属于对象,对象必须实例化才存在,而类一直在,所以不可以用静态成员函数访问非静态成员,因为非静态可能不存在。因为静态成员存在于内存,所以非静态成员函数可以访问静态成员。所以B正确,C错误。

D选项:D选项不严谨,非静态成员函数的生存期决定于对象的生存期,不是类,静态成员的生存期取决于进程的生存期。




🌈二、编程题

🍄第1题:字符串压缩

思路分析:
这个题如果一个一个遍历,然后再数出每一个字符的个数,然后拼接成新字符,最后再和原字符比较的话,一点都不简单,而且特别繁琐。
这里的话可以考虑一下双指针解答:一个记录字母,一个记录字母的个数,简单明了,然后再利用一下to_string函数将数字转化为字符串,接下来一比较就完成了。
string compressString(string S) {int N = S.length();string res;  //拼接已经记录好的字符int i = 0;while (i < N) { int j = i;  //双指针i,jwhile (j < N && S[j] == S[i]) {j++;}res += S[i];   //先记录字符res += to_string(j - i);    //在把字符的个数的数字转化为字符i = j;        //再继续记录下一个字符}if (res.length() < S.length()) {return res;} else {return S;}
}

这个题的关键不是用不用to_string函数,而是双指针。难并不是看不懂那种,对于各位小伙伴来说都是小趴菜。这就不过多的说了。

今天就更新一道编程题了,开学了,休息一下!

http://www.ds6.com.cn/news/103058.html

相关文章:

  • 中国住建网查询资质宁波seo公司网站推广
  • 学平面设计哪个学校好南宁seo排名优化
  • 中华室内设计网伍飒爽成都企业seo
  • 苏州市吴江区住房和城乡建设局网站软文发布平台媒体
  • 专业网站建设服务包括哪些哪里注册域名最便宜
  • 万荣做网站新网站seo
  • 企业做网站能赚钱么百度认证怎么认证
  • 网站优化是在哪里做修改seo外链工具软件
  • 网站外链怎么做搜索引擎推广方法
  • 国外单页制作网站模板九易建网站的建站模板
  • 信阳做网站 汉狮网络商品推广软文范例200字
  • 网站群建设优点花都网站建设公司
  • 做网站增加流量网站如何被百度快速收录
  • 如何做贴吧类网站多钱国外引擎搜索
  • 网站设计字体网络营销概念是什么
  • 专业装修的商铺广州网站优化工具
  • 男女做羞羞事动画网站免费郑州网站公司哪家好
  • 汉阳网站建设鄂icp百度信息流推广
  • dns 部分网站打不开互联网营销师课程
  • 解决访问美国网站慢北京seo设计公司
  • 肯德基网站是哪家公司做的西地那非片吃了能延时多久
  • 中秋网页制作素材信息流优化师培训
  • 蓬莱做网站那家好网络营销的重要性与意义
  • wordpress页面自定义页面vue seo 优化方案
  • 北京网站开发多少钱淘宝seo排名优化软件
  • 最经济 网站建设怎么接app推广的单子
  • 渭南做网站公司杭州关键词优化外包
  • 怎么做网站广告古董seo排名是什么意思
  • 心理学门户网站开发与实现域名注册服务机构
  • 泰安肥城做网站的公司原画培训机构哪里好