欢迎来到天天文库
浏览记录
ID:55363434
大小:572.50 KB
页数:54页
时间:2020-05-15
《复制构造函数引用this指针静态成员.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、动态内存分配回收:new和delete默认参数值的构造函数引用的定义和使用拷贝构造函数特殊的this指针12复习:构造函数和析构函数1、构造函数:类的特殊成员函数,主要用于初始化对象。其特点:1)在建立对象时,系统自动调用构造函数,构造函数不能被程序员显式调用。2)构造函数的名字必须与相应的类同名。3)构造函数没有返回值类型,可以有任意类型的参数。不能包含return语句。4)若在定义类时未定义构造函数,则系统自动生成默认构造函数(空函数)。若程序已经定义构造函数,系统不再提供默认构造函数3构造函数的作用不仅完
2、成了对象数据成员的初始化,同时检查了初始化值的有效性。如果某个初始化参数值错误,就用一个最接近的合法的值去替换它。如果不定义任何构造函数,编译器会自动产生一个什么也不作的无参数的构造函数。只要定义了一个构造函数,就不再提供默认的构造函数4构建对象的顺序创建对象的唯一途径是调用构造函数1。所有全局对象在主函数main之前构造全局对象之间顺序不定2。局部和静态对象以声明的顺序构造静态对象只被构造一次3。析构函数以与构造函数相反的顺序被调用5构造函数何时被调用?在有对象生成时,系统要调用相应构造函数。如:定义新的对象
3、CDATEdate1;用new操作符给对象指针动态分配存储空间时特殊用法不会调用构造函数:创建对象引用时创建对象指针时6析构函数何时被调用?撤销对象时自动调用析构函数自动撤销:局部类型变量、全局、静态类型变量主动撤销:用new操作符为对象指针动态分配空间,必须用delete释放析构函数调用次序和构造函数次序相反。7构造函数具有普通成员函数几乎所有的性能可以在类内部、外部定义可以带默认值,可以有多个参数,可以不带参数,可以重载构造函数的定义8构造函数的重载一个类可以具有多个构造函数,这使得类可以根据不同的要求进行
4、不同的初始化。系统会自动调用形参表与实参表匹配的构造函数如果创建对象时没有向构造函数传递实参,则在对象名后面不要加括号。否则是函数原型说明。9默认的构造函数如果类定义中没有构造函数,系统会自动产生默认的构造函数。参数表和函数体都为空。如果类中定义了构造函数,系统不会再产生默认的构造函数。创建对象时,没有相应的构造函数,就会产生错误带默认参数的函数在函数定义和函数原型说明中,可以给函数的参数指定值,这种函数称为具有缺省参数值的函数。在进行函数调用时,如果给出了实参值,则将实参传递给对应的形参;如果没有给出实参值,
5、则利用指定的参数的缺省值进行调用。10具有缺省参数值的延时函数voidDelay(intn=1000)//A{for(;n>0;n--);}voidmain(void){cout<<"延时500个单位时间…";Delay(500);//Bcout<<"延时1000个单位时间…";Delay();//C}11使用具有缺省值参数的函数时,注意以下几点:(1)除了在函数定义时可指定参数的缺省值之外,在函数原型说明中也可指定缺省参数值,此时还可以省去参数名。另外在不同的作用域内可以为同一个函数指定不同的缺省值,
6、但在同一作用域内,同一个函数只能指定一次缺省值。(2)参数的缺省值可以是表达式,但表达式必须有确定的值。12设计一程序,输入圆柱体的半径和高度,求出圆柱体的体积。floatconstPI=3.1416floatVolume(floatr,floath=10);//Avoidmain(void){floatr,h;cout<<"输入第一个圆柱体的半径和高度:";cin>>r>>h;cout<<"第一个圆柱体的体积为:"<>r;
7、cout<<"第二个圆柱体的体积为:"<8、参,则编译器按顺序用函数原型中的缺省值来补足所缺的实参。例如,有如下函数声明:intspecial(intx=5,floaty=7.8);以下调用都是合法的:special(100,79.8);special(25);special();换句话说:在函数原型中,所有的缺省参数均放在参数表的右半部分。并且,在调用函数时,若某个参数省略,则其后的参数皆应省略而采用缺省值。如intfun(i
8、参,则编译器按顺序用函数原型中的缺省值来补足所缺的实参。例如,有如下函数声明:intspecial(intx=5,floaty=7.8);以下调用都是合法的:special(100,79.8);special(25);special();换句话说:在函数原型中,所有的缺省参数均放在参数表的右半部分。并且,在调用函数时,若某个参数省略,则其后的参数皆应省略而采用缺省值。如intfun(i
此文档下载收益归作者所有