• 注册
当前位置:1313e > 默认分类 >正文

第5章类和对象(一)续

二、缺省构造函数与 缺省析构函数1、缺省构造函数C++规定,每个类必须有构造函数,没有构造函数就不能创建对象。如果在类的定义中,程序员没有设计任何构造函数,那么C++会自动提供一个默认的构造函数,该默认构造函数是一个没有参数的构造函数,它除了分配对象的实体空间外,其它什么也不做。此时,如果创建的对象是静态的或全局的,则对象中的数据初始化为0,否则将会是随机的。缺省构造函数的形式是:类名::类名(){}只要在类的定义中提供了任意一个构造函数,那么C++就不再自动提供默认构造函数。2、缺省析构函数如果在类的定义中,程序员没有设计析构函数,C++也会自动提供一个默认的析构函数,该缺省析构函数的形式是:类名::~类名(){}只要在类的定义中提供了析构函数,那么C++就不再自动提供默认析构函数。***********************************三、拷贝构造函数拷贝构造函数是一种特殊的构造函数。它的参数是本类对象的(常)引用。拷贝构造函数的功能是,将一个已经存在的对象的数据成员拷贝给正在创建的一个新的同类对象。#includeclass Point{public:Point(int x,int y){X=x;Y=y;}Point(Point &p);~Point(){cout<<"DestructorCalled."<class N{public:N(inta=3,int b=5,int c=7);intgetA(){return A;}intgetB(){return B;}intgetC(){return C;}private:intA,B,C;};N::N(int a,int b,int c){A=a;B=b;C=c;}void main(){NX,Y(9,11),Z(13,15,17);cout<class Myclass{public:Myclass(int a,int b,int c);voidprintNumber();voidprintSum();private:intA,B,C;staticint Sum;};int Myclass::Sum=0;Myclass::Myclass(int a,int b,int c){A=a;B=b;C=c;Sum+=A+B+C;}void Myclass::printNumber(){cout<<"Number="<class Point{public:Point(int x,int y){X=x;Y=y;}Point(Point &p);~Point(){cout<<"DestructorCalled."<class N{public:N(inta=3,int b=5,int c=7);intgetA(){return A;}intgetB(){return B;}intgetC(){return C;}private:intA,B,C;};N::N(int a,int b,int c){A=a;B=b;C=c;}void main(){NX,Y(9,11),Z(13,15,17);cout<class Myclass{public:Myclass(int a,int b,int c);voidprintNumber();voidprintSum();private:intA,B,C;staticint Sum;};int Myclass::Sum=0;Myclass::Myclass(int a,int b,int c){A=a;B=b;C=c;Sum+=A+B+C;}void Myclass::printNumber(){cout<<"Number="<


转载于:https://www.cnblogs.com/yuzaipiaofei/archive/2011/07/18/4124574.html

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录
相关推荐