下载此文档

类与对象III.ppt


文档分类:IT计算机 | 页数:约42页 举报非法文档有奖
1/42
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/42 下载此文档
文档列表 文档介绍
程序设计实****第十四讲类与对象III主讲教师:田永鸿******@://./cpp2008/tyh/://./jiaoxue-CPP/(三)转换构造函数再次讨论:常量对象和常量方法成员对象和封闭类const成员和引用成员友元this指针静态成员变量和静态成员函数从C++到C的翻译来理解this指针和静态成员课堂问题构造函数在哪几种情况下被调用?析构函数在哪几种情况下被调用?什么是复制构造函数?在哪几种情况下被调用?它与对象间用等号赋值的区别是什么?static、const和引用成员如何进行初始化?pair的数据成员为public,然而下面这段代码却不能编译,为什么? pair<int,int>p2={0,42}下面的第二个初始化不能编译,可以从vector的定义得出什么推断? Vector<int>v1(42);//OK,42elements,each0 Vector<int>v2=42;//Error,Why?转换构造函数定义转换构造函数的目的是实现类型的自动转换只有一个参数,而且不是复制构造函数的构造函数,一般就可以看作是转换构造函数。#include<>plex{public:floatreal,plex(doublef){ printf("FloatConstructorcalled\n" ); real=f;imag=0;} Complex(inti=0){ printf("IntConstructorcalled\n"); real=i;imag=0; } ~Complex(){ printf("Destructorcalled\n"); }};Complexc1;//Complex(0)c1={0,0};Complexc2=2;//Complex(2)c2={2,0};Complexc3=;//Complex()c3={,0};intmain(){ printf("c1=%f+%fi\n",,); printf("c2=%f+%fi\n",,); printf("inmain\n"); c1=4; printf("endmain\n");return0;}输出:IntConstructorcalledIntConstructorcalledFloatConstructorcalledc1=+=+,则定义该对象的时候可以在前面加const关键字classSample{ private: intvalue; public: voidSetValue(){ }};constSampleObj;//();//错误。常量对象只能使用构造函数、析//构函数和有const说明的函数(常量方法)在类的成员函数说明后面可以加const关键字,则该成员函数成为常量成员函数classSample{ private: intvalue; public: voidSetValue()const{ value=0;//wrong//常量方法内部不能改变属性的值}};constSampleObj;//();在定义常量成员函数和说明常量成员函数时都应该使用const关键字classSample{ private: intvalue; public: voidSetValue()const;};voidSample::SetValue()const{//此处不使用const会//导致编译出错 cout<<value;}

类与对象III 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数42
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wdwd123321123
  • 文件大小196 KB
  • 时间2020-07-10