求学快递网是国内领先的B2M2C教育培训网上信息平台!

首页 | 分站加盟 | 课程发布 | 最新课程 | 最新机构 | 培训专题 | 全国分站 | 帮助中心

计算机等级考试_计算机等级考试报名_计算机考试成绩查询_求学快递网

计算机等级考试一步到位
您的位置:求学快递网 > 计算机等级考试 > 考试辅导 > 计算机二级 > 计算机二级C++知识点:构造函数 - 正文内容

计算机二级C++知识点:构造函数

计算机二级C++知识点:构造函数

 

求学快递网计算机等级考试专题重点推荐:2016年计算机级考试报考时间 2016年计算机二级考试证书领取时间2016年计算机二级考试报考指南2016年计算机二级考试大纲2016年计算机二级考试政策2016年计算机二级考试报考条件2016年计算机二级考试科目等最新新闻资讯。

 

      构造函数
  什么是构造函数?通俗的讲,在类中,函数名和类名相同的函数称为构造函数。上面的Box()函数就是构造函数。C++允许同名函数,也就允许在一个类中有多个构造函数。如果一个都没有,编译器将为该类产生一个默认的构造函数,这个构造函数可能会完成一些工作,也可能什么都不做。
  绝对不能指定构造函数的类型,即使是void型都不可以。实际上构造函数默认为void型。
  当一个类的对象进入作用域时,系统会为其数据成员分配足够的内存,但是系统不一定将其初始化。和内部数据类型对象一样,外部对象的数据成员总是初始化为0。局部对象不会被初始化。构造函数就是被用来进行初始化工作的。当自动类型的类对象离开其作用域时,所站用的内存将释放回系统。
  看上面的例子,构造函数Box()函数接受三个整型擦黑素,并把他们赋值给立方体对象的数据成员。
  如果构造函数没有参数,那么声明对象时也不需要括号。
  1.使用默认参数的构造函数
  当在声明类对象时,如果没有指定参数,则使用默认参数来初始化对象。
  #include iostream.h
  class Box
  {
  private:
  int height,width,depth;
  public:
  Box(int ht=2,int wd=3,int dp=4)
  {
  height=ht;
  width=wd;
  depth=dp;
  }
  ~Box();
  int volume()
  {
  return height*width*depth;
  }
  };
  int main()
  {
  Box thisbox(3,4,5); //初始化
  Box defaulbox; //使用默认参数
  cout< cout<
  return 0;
  }
  2.默认构造函数
  没有参数或者参数都是默认值的构造函数称为默认构造函数。如果你不提供构造函数,编译器会自动产生一个公共的默认构造函数,这个构造函数什么都不做。如果至少提供一个构造函数,则编译器就不会产生默认构造函数。
  3.重载构造函数
  一个类中可以有多个构造函数。这些构造函数必须具有不同的参数表。在一个类中需要接受不同初始化值时,就需要编写多个构造函数,但有时候只需要一个不带初始值的空的Box对象。
  #include iostream.h
  class Box
  {
  private:
  int height,width,depth;
  public:
  Box() { //nothing }
  Box(int ht=2,int wd=3,int dp=4)
  {
  height=ht;
  width=wd;
  depth=dp;
  }
  ~Box();
  int volume()
  {
  return height*width*depth;
  }
  };
  int main()
  {
  Box thisbox(3,4,5); //初始化
  Box otherbox; 
  otherbox=thisbox;
  cout< return 0;
  }
  这两个构造函数一个没有初始化值,一个有。当没有初始化值时,程序使用默认值,即2,3,4。
  但是这样的程序是不好的。它允许使用初始化过的和没有初始化过的Box对象,但它没有考虑当thisbox给otherbox赋值失败后,volume()该返回什么。较好的方法是,没有参数表的构造函数也把默认值赋值给对象。
  class Box
  {
  int height,width,depth;
  public:
  Box()
  {
  height=0;width=0;depth=0;
  }
  Box(int ht,int wd,int dp)
  {
  height=ht;width=wd;depth=dp;
  }
  int volume()
  {
  return height*width*depth;
  }
  };
  这还不是最好的方法,更好的方法是使用默认参数,根本不需要不带参数的构造函数。
  class Box
  {
  int height,width,depth;
  public:
  Box(int ht=0,int wd=0,int dp=0)
  {
  height=ht;width=wd;depth=dp;
  }
  int volume()
  {
  return height*width*depth;
  }
  };

 

 

 

 

关注求学快递网计算机等级考试专题,帮你了解最新的2016年计算机二级考试资讯服务2016计算机二级考试成绩查询,让你轻松备考计算机等级考试!

求学快递网计算机等级考试专题的小编们根据网民搜索喜爱,第一时间公布2016年计算机二级模拟试题2016年计算机二级考试应试技巧计算机二级考试历年真题2016年计算机二级考试章节复习供广大求学爱好者学习使用,欢迎继续关注求学快递网计算机等级考试专题,并给我们提供宝贵的意见!

 

 

相关推荐

计算机等级考试最新机试技巧
计算机等级考试高效利用技巧

最新计算机资讯

热点专题

计算机等级考试经验技巧分享

关于本站  诚征英才  广告服务  招生服务  免责声明  分站加盟  VIP会员  联系我们  网站地图  网站记事

版权所有 CopyRight 2008-2017 粤ICP备14009694号 www.studyems.com, Inc. All Rights Reserved
违法和不良信息举报邮箱:2881796407@qq.com 举报电话: