面向对象程序设计幻灯片课件.ppt面向对象程序设计*1第十章结构§§§§§§§(Union)、结构及结构变量的定义结构是用户自定义的新数据类型。声明结构类型时,首先指定关键字struct和结构名,然后用一对花括号将若干个结构成员数据类型说明括起来。例如,要表示一个单位职工的收入情况,需要记录每个职工的姓名、年龄、工资等信息。当用结构类型表示时,结构中应包括一个字符串分量(表示姓名),一个整型分量(表示年龄),一个浮点型分量(表示工资)。按C++规定,可做如下定义:structperson{charname[10];intage;floatwage;};Date4其中,struct是关键字;person是自定义的结构类型的名称;花括号中是结构成员的说明。person结构类型被定义后,从使用角度看,就等效于int,char,float等基本数据类型。类型定义通常位于main()函数之前,使该类型在定义点后面的程序中可见。要使用结构变量也必须先定义后使用,例如:personworker;声明一个结构并不分配内存,内存分配发生在定义这个新数据类型的变量中。变量一旦定义,编译器将为woker变量分配包含三种不同数据类型成员的存储空间name…………age…………wage…………Date5二、结构成员的访问一旦通过定义相应结构变量,分配了空间,就可以使用点操作符“.”(或称结构成员操作符)来访问结构中的成员。左操作数为结构类型变量,右操作数为结构中的成员。一般形式::=25;cin>>;cin>>;下面是一个定义结构类型和变量的简单例子:Date6#include<>structweather{floattemp;intwind;};voidmain(){weathertoday;=;=4;cout<<“Temp=”<<<<endl;cout<<“Wind=”<<<<endl;}结果:Temp==4Date7三、结构变量赋值数组不能彼此赋值,但同类型的结构变量可以彼此赋值。例如下面程序对结构变量赋值:#include<>structperson{charname[20];longid;floatsalary;};personpr1{“Liming”,1082422,};Date8voidmain(){personpr2;pr2=pr1;//assigningpr1topr2cout<<<<“”<<<<“”<<<<endl;}结果:Liming**********.0不同类型的结构变量不允许相互赋值,即使两者包含有相同的成员。注意:在C中结构类型名必须包含关键字struct,故定义语句为:structpersonworker,manager;,也可以通过指针进行访问。若定义一个结构指针,并把一个结构变量的地址赋给它,则通过该指针可对结构变量的成员进行访问。结构指针定义格式如下:person*p;//定义指向结构类型的指针personpr1;//定义结构类型变量若p=&pr1;则p是指向结构变量pr1的结构指针,为访问成员,可写成:(*p).name等效于p->name;(*p).id等效于p->id;(*p).salary等效于p->
面向对象程序设计幻灯片课件 来自淘豆网www.taodocs.com转载请标明出处.