- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
结构体与类
结构体与类;第一部分 结构体;? 已了解的数据类型:;如:建立一份学生档案,每一个学生至少需要以下一些信息。;C++程序可将上述数据的集合定义为一种结构体类型:;一、结构体定义的一般形式:;注意:;;1. 先定义结构体类型再定义结构体变量;struct student x1, x2; ;例:struct student
{ int num;
char name[20];
char sex;
int age;
char addr[30];
} x1, x2;;定义形式 struct
{成员列表
} 变量名列表;
不出现结构体类型名;例 struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}; ; struct date
{ int month;
int day;
int year;
};
; struct student x1={8906, Li Ming , M, 85.5};;二、结构定义与变量定义及初始化合二为一:; 访问结构体成员;二、箭头运算符:?;令 p=x1; ; 小结: 引用结构变量中的成员有三种方法:;三、关于结构体变量的几点说明:;如:struct temp;3.占有的存储单元大小取决于成员的数据类型;4. 不可以将两个结构变量进行关系比较;5.可通过sizeof ( )运算符获得结构体变量占用的内存大小;; 结构体和函数;例1. 把整个结构传递给参数;main( );例2. 把指向结构的指针作为函数的参数;void fun(struct stu *p);main( );1--print in main:;第二部分 类; 这里将详细阐述简单的例子,来逐步说明从面向过程到面向对象的一个思维转变的过程。
阐述刚接触到问题时,我们按照面向过程的思维是怎么看待、思考及解决问题的;然后怎么进一步使问题的解决更方便和灵活。再就是解决问题出发点角度的转变,以一种新的完全面向对象的角度去看待和思考问题。????;【问题1】 要求写一个函数或方法,能显示出一个int类型数组的元素个数及元素的内容. ;;【问题1】 要求写一个函数或方法,能显示出一个int类型数组的元素个数及元素的内容. ;; 这样传递给函数showArray()时,就只是一个参数。
但这个方案比第一个方案多增加了一结??体的概念,而且结构体中的数组int?a[10],它的元素个数也是固定的,p.Len的值只能是10,当 p.Len为其他的值时就会出错。
;【问题1】 要求写一个函数或方法,能显示出一个int类型数组的元素个数及元素的内容. ;; 通过动态分配的方法,实现了数组元素个数的任意分配,并且其数组个数的属性Len如实地表达出了数组的个数,而不需要我们操心.
该解决方法要比前两个解决方法都要进步,但是做的工作也多了一点,这里就涉及到了一个动态分配的概念,而且一定要使用delete这个函数来释放掉动态分配的内存,否则会造成内存泄露, 显然,多增加了一些代码编写的风险. ; 此问题如何方便有效地得到解决的?
其解决问题的思路,与这个方法是一样的,就是使数组被封装进一个类中,使之成为一个对象来考虑.
一个类就是一个扩展的struct。除了定义数据成员,你还可以为其添加成员函数。
;【问题1】 要求写一个函数或方法,能显示出一个int类型数组的元素个数及元素的内容. ;;
文档评论(0)