黑马程序员技术交流社区

标题: 一般函数和构造函数有啥区别呢 [打印本页]

作者: fxing    时间: 2015-1-6 13:50
标题: 一般函数和构造函数有啥区别呢
请从实际应用的角度解释下,总是弄不清为啥要分这么细
作者: djbcool    时间: 2015-1-6 14:31
构造函数在对象创建时,就会调用相应的构造函数,对对象进行初始化。只调用一次。而一般函数是在对象创建后,需要该函数时才调用。可被调用多次。
如果在描述一个事物时,对事物本身具备的一些特征进行描述,这些特征就可以被定义在构造函数中。比如,一个人具有姓名,性别,年龄,国籍等等特征。
作者: xiao_jian    时间: 2015-1-6 15:08

什么是构造函数?通俗的讲,在类中,函数名和类名相同的函数称为构造函数。它的作用是在建立一个对象时,作某些初始化的工作(例如对数据赋予初值)。C++允许同名函数,也就允许在一个类中有多个构造函数。如果一个都没有,编译器将为该类产生一个默认的构造函数。
构造函数上惟一的语法限制是它不能指定返回类型,甚至void 也不行。
不带参数的构造函数:一般形式为 类名 对象名(){函数体}
带参数的构造函数:不带参数的构造函数,只能以固定不变的值初始化对象。带参数构造函数的初始化要灵活的多,通过传递给构造函数的参数,可以赋予对象不同的初始值。一般形式为:构造函数名(形参表);
创建对象使用时:类名 对象名(实参表);
构造函数参数的初始值:构造函数的参数可以有缺省值。当定义对象时,如果不给出参数,就自动把相应的缺省参数值赋给对象。一般形式为:
构造函数名(参数=缺省值,参数=缺省值,……);

析构函数:
当一个类的对象离开作用域时,析构函数将被调用(系统自动调用)。析构函数的名字和类名一样,不过要在前面加上 ~ 。对一个类来说,只能允许一个析构函数,析构函数不能有参数,并且也没有返回值。析构函数的作用是完成一个清理工作,如释放从堆中分配的内存。
一个类中可以有多个构造函数,但析构函数只能有一个。对象被析构的顺序,与其建立时的顺序相反,即后构造的对象先析构。
作者: xiaoyi    时间: 2015-1-6 19:42
构造函数就是 楼主你在中国的土地上出生,那么初始化国籍就是中国
一般函数就是 楼主通过在黑马学习后,技术非常牛逼,想改变国籍,这时你就需要改变国籍的一般函数了
                     一般函数可以多次调用,也就是说 楼主可以改多次国籍,想改就改,通过一般函数,不说了 任性





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2