“构造函数”的版本间的差异

来自华夏文化百科
跳转至: 导航、 搜索
 
小 (1個修訂:HDwiki 数据迁移 批次 - 820)
 
(未显示同一用户的1个中间版本)
第3行: 第3行:
  
  
−
如果类中某个成员函数的名称与类名称相同,我们称这个函数是构造函数。构造函数不能有[[返回值]],甚至不能有return语句。
 
−
简单地说,构造函数是这样一种函数,当一个对象被建立时,程序就会自动调用这个[[类]]的构造函数为这个对象进行初始化。[[ C++Builder]]允许定义多个使用不同参数列表的构造函数。这里有两种特殊的构造函数,默认构造函数和复制构造函数。默认构造函数不带任何类型的参数,而复制构造函数带有一个参数,该参数的类型为一个对相同类的实例对象的引用。 
 
  
 +
如果类中某个成员函数的名称与类名称相同,我们称这个函数是构造函数。构造函数不能有[[返回值]],甚至不能有return语句。简单地说,构造函数是这样一种函数,当一个对象被建立时,程序就会自动调用这个[[类]]的构造函数为这个对象进行初始化。[[ C++Builder]]允许定义多个使用不同参数列表的构造函数。这里有两种特殊的构造函数,默认构造函数和复制构造函数。默认构造函数不带任何类型的参数,而复制构造函数带有一个参数,该参数的类型为一个对相同类的实例对象的引用。 
  
 +
 
 
== 与其他方法的区别 ==
 
== 与其他方法的区别 ==
  
  
 
1.构造函数的命名必须和类名完全相同;而一般方法则不能和类名[[相同.]]2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有[[返回值]],也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会[[自动]]调用,一般方法在程序执行到它的时候被调用.4.当定义一个类定义的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略不去[[Java]]编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点
 
1.构造函数的命名必须和类名完全相同;而一般方法则不能和类名[[相同.]]2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有[[返回值]],也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会[[自动]]调用,一般方法在程序执行到它的时候被调用.4.当定义一个类定义的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略不去[[Java]]编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点
 +
 +
 +
 +
  
  
 
== 例子 ==
 
== 例子 ==
 +
 +
#include iostream  using namespace std;  class time  {  public:  time() //constructor.构造函数  {  hour=0;  minute=0;  sec=0;  }  void set_time();  void show_time();  private:  int hour;  int minute;  int sec;  };  int main()  {  time t1;  t1.set_time();  t1.show_time();  time t2;  // t2.set_time();  t2.show_time();  return 0;  }  void time::set_time()  {  cin hour;  cin minute;  cin sec;  }  void time::show_time()  { couthour":"minute":"secendl;  }  程序运行情况:  10 11 11 回车  10:11:11  0:0:0任何时候,只要创建类或[[结构]],就会调用它的构造函数。类或结构可能有多个接受不同参数的构造函数。构造函数使得程序员可设置[[默认值]]、限制实例化以及编写灵活且便于阅读的代码。
 +
 +
  
  
−
#include iostream>  using namespace std;  class time  {  public:  time() //constructor.构造函数  {  hour=0;  minute=0;  sec=0;  }  void set_time();  void show_time();  private:  int hour;  int minute;  int sec;  };  int main()  {  time t1;  t1.set_time();  t1.show_time();  time t2;  // t2.set_time();  t2.show_time();  return 0;  }  void time::set_time()  {  cin >>hour;  cin >>minute;  cin >>sec;  }  void time::show_time()  { couthour":"minute":"secendl;  }  程序运行情况:  10 11 11 回车  10:11:11  0:0:0任何时候,只要创建类或[[结构]],就会调用它的构造函数。类或结构可能有多个接受不同参数的构造函数。构造函数使得程序员可设置[[默认值]]、限制实例化以及编写灵活且便于阅读的代码。
 
  
  
第32行: 第39行:
 
||  [[异常处理]]
 
||  [[异常处理]]
 
|}
 
|}
 +
 +
 +
 +
  
  
  
 
== 参考资料 ==
 
== 参考资料 ==
 +
 +
[1] http://www.baidu.com[2] [[《C++程序设计教程》]][[钱能]]编著 清华大学出版社出版
  
  
−
[1] http://www.baidu.com[2] [[《C++程序设计教程》]][[钱能]]编著 清华大学出版社出版
 
  
  

2014年8月11日 (一) 07:24的最新版本

简介

如果类中某个成员函数的名称与类名称相同,我们称这个函数是构造函数。构造函数不能有返回值,甚至不能有return语句。简单地说,构造函数是这样一种函数,当一个对象被建立时,程序就会自动调用这个类的构造函数为这个对象进行初始化。C++Builder允许定义多个使用不同参数列表的构造函数。这里有两种特殊的构造函数,默认构造函数和复制构造函数。默认构造函数不带任何类型的参数,而复制构造函数带有一个参数,该参数的类型为一个对相同类的实例对象的引用。 


与其他方法的区别

1.构造函数的命名必须和类名完全相同;而一般方法则不能和类名相同.2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用.4.当定义一个类定义的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略不去Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点




例子

  1. include iostream  using namespace std;  class time  {  public:  time() //constructor.构造函数  {  hour=0;  minute=0;  sec=0;  }  void set_time();  void show_time();  private:  int hour;  int minute;  int sec;  };  int main()  {  time t1;  t1.set_time();  t1.show_time();  time t2;  // t2.set_time();  t2.show_time();  return 0;  }  void time::set_time()  {  cin hour;  cin minute;  cin sec;  }  void time::show_time()  { couthour":"minute":"secendl;  }  程序运行情况:  10 11 11 回车  10:11:11  0:0:0任何时候,只要创建类或结构,就会调用它的构造函数。类或结构可能有多个接受不同参数的构造函数。构造函数使得程序员可设置默认值、限制实例化以及编写灵活且便于阅读的代码。




相关词条

 析构函数  C++  面向对象
 重载  继承  异常处理




参考资料

[1] http://www.baidu.com[2] 《C++程序设计教程》钱能编著 清华大学出版社出版