网站大量收购独家精品文档,联系QQ:2885784924

第3章 怎样用类和对象.doc

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 怎样用类和对象

第3章 怎样使用类和对象++的重点! 第2章我们介绍了关于类的一些基本内容,对于类对象的数据成员的初始化我们始终是通过建立成员函数来实现的。而且一般都是用赋值语句给数据成员赋值,或通过cin来为数据成员从键盘输入值来实现。然后手工调用该函数对数据成员进行赋值的。 //这是一个由cin的输入或用赋值语句来为数据成员赋值的程序 #includeiostream using namespace std; class Point { int x, y; public: void input(){cinxy;} void set(int x,int y){Point::x=x;Point::y=y;} void print(){ cout(x, y)\n; } };//=============================== int main() { Point a,b; a.input(); b.set(4,5); a.print(); b.print(); }//================================ 在建立一个对象时如果不初始化是没有意义的,应该要有确定的值,++中对于类来说有没有更方便的方式能够在对象创建的时候就自动初始化数据成员呢?答案是肯定的。关于C++类成员的初始化,有专门的构造函数来进行自动操作而无需要手工调用。 3.1 构造函数 3.1.1 对象的初始化 对象和变量一样,不赋初值是没有意义的。 根据变量定义,全局变量和静态变量在定义(分配空间)时,0,局部变量在定义时分配内存空间内容为不确定的数。对象定义时,不确定的数值的情况#includeiostream using namespace std; //------------------------------------- class Point { int x, y; public: void set(int a, int b) { x=a, y=b; }//------------------------------------ void print() { cout(x, y)\n; } };//=================================== Point t; //全局对象 int main() { Point s1; //局部对象 static Point s2; //静态对象 s1.print(); s2.print(); t.print(); }//==================================== //运行结果如下: (-858993460, -858993460) (0, 0) (0, 0) 从运行结果可以知道,末设置初始时,全局对象、静态对象值为0,局部对象值为不确定例如桌子,桌子就应有长、宽、高和重量。因此,在桌子对象建立时,赋予一组值给该桌子对象。class Point { int x=10, y=20; //这是不允许的 public: void set(){cinxy;} void print()const{ cout(x, y)\n; } };//=============================== 如果一个类中所有的成员都是公有的,则与结构体一样,#includeiostream using namespace std; class Point {public: int x, y; }; int main() { Point p={1,1}; cout(p.x, p.y)\n; return 0; };//=============================== 因为对象中的数据成员一般都是私有的,不能随意改动,如果改成公有的破坏了封装性。 所以,在C++中,建立和初始化对象的过程专门由该类的构造函数来完成。这个构造函数很特殊,只要对象建立,它马上被调用,给对象分配空间和初始化。如果一个类没有专门定义构造函数, 那么C++就仅仅创建对象而不做任何初始化。C++规定与类同名的成员函数是构造函数,在该类的对象创建时,自动被调用。class Desk { int weight, height,width,length; public: Desk() //构造函数 { weight=10; height=5; width=4; length=4; } }; 在类中定义的与类名相同的成员函数,并且没有任何返回类型的Desk()就是构造函数

您可能关注的文档

文档评论(0)

qnc814 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档