“构造函数”的版本间的差异
来自华夏文化百科
小 (1個修訂:HDwiki 数据迁移 - 批次 583) |
小 (1個修訂:HDwiki 数据迁移 批次 - 820) |
||
| 第3行: | 第3行: | ||
| − | |||
| − | |||
| + | 如果类中某个成员函数的名称与类名称相同,我们称这个函数是构造函数。构造函数不能有[[返回值]],甚至不能有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任何时候,只要创建类或[[结构]],就会调用它的构造函数。类或结构可能有多个接受不同参数的构造函数。构造函数使得程序员可设置[[默认值]]、限制实例化以及编写灵活且便于阅读的代码。 | ||
| + | |||
| + | |||
| − | |||
| 第32行: | 第39行: | ||
|| [[异常处理]] | || [[异常处理]] | ||
|} | |} | ||
| + | |||
| + | |||
| + | |||
| + | |||
== 参考资料 == | == 参考资料 == | ||
| + | |||
| + | [1] http://www.baidu.com[2] [[《C++程序设计教程》]][[钱能]]编著 清华大学出版社出版 | ||
| − | |||
2014年8月11日 (一) 07:24的最新版本
简介
如果类中某个成员函数的名称与类名称相同,我们称这个函数是构造函数。构造函数不能有返回值,甚至不能有return语句。简单地说,构造函数是这样一种函数,当一个对象被建立时,程序就会自动调用这个类的构造函数为这个对象进行初始化。C++Builder允许定义多个使用不同参数列表的构造函数。这里有两种特殊的构造函数,默认构造函数和复制构造函数。默认构造函数不带任何类型的参数,而复制构造函数带有一个参数,该参数的类型为一个对相同类的实例对象的引用。
与其他方法的区别
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任何时候,只要创建类或结构,就会调用它的构造函数。类或结构可能有多个接受不同参数的构造函数。构造函数使得程序员可设置默认值、限制实例化以及编写灵活且便于阅读的代码。
相关词条
| 析构函数 | C++ | 面向对象 |
| 重载 | 继承 | 异常处理 |
参考资料
[1] http://www.baidu.com[2] 《C++程序设计教程》钱能编著 清华大学出版社出版