- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
int main() { Box *A = new Box(12, 25, 30); cout box1体积= A-volume() endl; Box *A = new Box(15, 30, 21); cout box2体积= A-volume() endl; return 0; } 3.1.4 用参数初始化表对数据成员初始化 该方法在函数的首部实现数据成员的初始化。 定义构造函数的格式: 函数名 (类型1 形参1,类型2 形参2,…): 成员名1(形参1), 成员名2(形参2), … { } 定义对象的格式: 类名 对象名( 实参1,实参2,… ); 例: Box::Box(int h, int w, int len): height (h), width(w), length(len) { } 定义对象: Box box1(12,25,30); Box box2(15,30,21); 3.1.5 构造函数的重载 构造函数可以重载。一个类可以有多个同名构造函数,函数参数的个数、参数的类型各不相同。 例3.3:在例3.2的基础上,定义两个构造函数,其中一个无参数,另一个有参数。 # include iostream using namespace std; class Box { public: Box(); // 默认构造函数 Box(int h, int w, int len): height(h), width(w), length(len) { } int volume(); private: int height; int width; int length; }; Box::Box( ) { height=10; width=10; length=10; } int Box::volume( ) { return(height*width*length); } int main() { Box box1; coutbox1 体积= box1.volume()endl; Box box2 (15,30,25); coutbox2 体积= box2.volume()endl; return 0; } 3.1.6 使用默认参数值的构造函数 构造函数可为形参指定默认值,若创建对象时未给出实参,则以默认值为形参赋值。 格式: 函数名 (类型 形参1=常数,类型 形参2=常数 ,… ); 例3.4:将例3.3中的构造函数改用带默认值的参数,长、宽、高的默认值都是10。 # include iostream using namespace std; class Box { public: Box(int w=10, int h=10, int len=10); int volume(); private: int height; int width; int length; }; Box::Box(int w, int h, int len) { height=h; width=w; length=len; } int Box::volume( ) { return(height*width*length); } int main() { Box box1; coutbox1 体积= box1.volume()endl; Box box2(15); coutbox2 体积 box2.volume()endl; Box box3(15,30); coutbox3 体积 box3.volume()endl; Box box4(15,30,20); coutbox4 体积box4.volume()endl; return 0; } 程序运行结果为: box1 体积=1000 box2 体积=1500 box3 体积=4500 box4 体积=9000 为了避免歧义,不允许同时定义不带形参的构造函数和全部形参都指定默认值的构造函数。 Box(); Box(int h=10,
文档评论(0)