- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例如,如果将上面的程序移植到内存空间紧张的手持设备上,希望将 szMenpai 改为 int nMenpai, 即门派编号,然后根据门派编号能查到门派名字,如果szMenpai 是私有,那么就要找出所有类似 strcpy(Hero1.szMenpai,”Shaolin”); 这样的语句进行修改,这样做很麻烦。 如果将szMenpai 为私有,那么程序中就不可能出现(除非在类的内部) strcpy(Hero1.szMenpai,”Shaolin”); 这样的语句,所有对 szMenpai的访问都是通过成员函数来进行,比如: Hero1.SetMenpai(“Shaolin”); 那么,就算szPenpai变成int nMenpai了,上面的语句也不需要找出来修改,只要改 SetMenpai成员函数,在里面根据门派名查到门派编号再赋值给nMenpai就可以了 函数重载: 一个或多个函数,名字相同,然而参数个数或参数类型互不相同,这叫做函数的重载 如: int Max(double f1,double f2) { } int Max(int n1,int n2) { } int Max(int n1,int n2,int n3) { } 函数重载使得函数命名变得简单 函数的缺省参数: C++中,写函数的时候可以让参数有缺省值,那么调用函数的时候,若不写参数,参数就是缺省值。 void func( int x1 = 2, int x2 = 3) { } func( ) ; //等效于 func(2,3) func(8) ; //等效于 func(8,3) func(, 8) ; //不行 函数参数可缺省的目的在于提高程序的可扩充性。即如果某个写好的函数要添加新的参数,而原先那些调用该函数的语句,未必需要使用新增的参数,那么为了避免对原先那些函数调用语句的修改,就可以使用缺省参数 成员函数也可以重载(普通函数也可以) 成员函数和构造函数可以带缺省参数(普通函数也可以) #include iostream.h class Location { private : int x, y; public: void init( int x=0 , int y = 0 ); void valueX( int val ) { x = val ;} int valueX() { return x; } }; void Location::init( int X, int Y) { x = X; y = Y; } 成员函数的重载及参数缺省 int main() { Location A,B; A.init(5); A.valueX(5); cout A.ValueX(); return 0; } 使用缺省参数要注意避免有函数重载时的二义性 #include iostream.h class Location { private : int x, y; public: void init( int x =0, int y = 0 ); void valueX( int val = 0) { x = val } int valueX() { return X; } }; Location A; A.valueX(); //错误,编译器无法判断调用哪个valueX 构造函数 成员函数的一种,名字与类名相同,可以有参数,不能有返回值(void也不行),作用是对对象进行初始化,如给成员变量赋初值。 如果定义类时没写构造函数,则编译器生成一个缺省的无参数的构造函数。缺省构造函数无参数,什么也不做。 如果定义了构造函数,则编译器不生成缺省的无参数的构造函数。 对象生成时构造函数自动被调用。对象一旦生成,就再也不能在其上执行构造函数。 为类编写构造函数是好的习惯,能够保证对象生成的时候总是有合理的值。 一个类可以有多个构造函数 class Complex { private : double real,imag; public: void Set( double r,double i); }; //构造函数为编译器自动生成的无参数构造函数。 Complex c1; //构造函数被调用 Complex * pc = new Complex; //构造函数被调用 class Complex { private : double real,imag; public: Complex( double r, double i = 0); }
文档评论(0)