- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C面向对象第十章
C++面向对象程序设计 第十章 类 葛勇 结构 回忆一下以前讲过的结构体。 struct words { char zimu; int num; }; int main() { words wd; wd.zimu=‘a’; wd.num=1; } 我们可以在一个程序中定义多个结构体,如: struct FertilizerStock { double quantity; double nitrogen_content; }; struct CropYield { int quantity; double size; }; int main() { FertilizerStock super_grow; super_grow.quantity=2.5; super_grow.nitrogen_content=5.3; CropYield apples; apples.quantity=3; apples.size=2.01; } 此外,两个同一类型的结构变量可以直接赋值,如: FertilizerStock f1; f1.quantity=2.3; f1. nitrogen_content=4.2; FertilizerStock f2=f1; 其中f2=f1;等价于: f2.quantity=f1.quantity; f2.nitrogen_content=f1.nitrogen_content; 结构体在定义时,同时可为变量进行声明,如: struct WeatherData { double temperature; double wind_velocity; }data1,data2; 值得注意的是,结构定义最后面的;是不可缺少的。 在以前的程序中,我们已经使用结构体类型的变量作为一个函数的形参,还使用过结构体类型的指针,如: words wd; words* wp=wd; words* wp=new words[5]; words wd[5]; 结构体是非常有用,在实际生活有许多数据都是需要用结构体来表达的,如日期类型的数据就需要有分为年、月、日,可如下定义一个日期结构体: struct Date { int month; int day; int year; }; 再,一个人物的模型,可能如下定义: struct PersonInfo { double height; int weight; Date birthday;//使用前面定义的结构体定义此结构的成员变量。 } PersonInfo yangyang; 如要定义此人物的生日,需要如下进行: yangyang.birthday.year=2001; yangyang.birthday.month=10; yangyang.birthday.day=22; 则将yangyang的生日设置为2001年10月22日。 结构体的初始化 声明一个结构体时可如下进行初始化: Date due_date={10,22,2001}; 则将due_date的成员变量逐个设为10,22,2001,但如果花括号里的值的数目多于成员变量的个数,则会出错,如果少于成员变量的个数,则未初始化的成员变量设置为相应类型的零值。 练习 P.361(7版P.379) 2、3、5 10.2 类 类是一个数据类型,在这一点上和结构是一样的,用类声明的变量称为该类的对象,如string就是一个类,而 string s; 中的s是string类的对象,也称为字符串变量。 vector、ifstream、ofstream等都是类。 类是结构体的一种扩展,但又不同于结构体,类的定义可如下进行: class 类名称 { private: //如果这一部分在public和protected之 //前,则关键定private可省略 //private是默认关键字 私有成员变量列表 私有成员函数列表 public: 公有成员变量列表 公有成员函数列表 protected: 保护成员变量列表 保护成员函数列表 }; //;也是不可缺少的。 如: class DateOfYear { int month; int day; int year; }; int main() { DateOfYear dt; } 此类DateOfYear的三个成员变量month、day、year是私有的。 但此类在这里却没有什么用处,由于year、month、day是私有的,所以在主函数中下列语句都是无效的: dt.year=2001; dt.month=10; dt.day=22; 上类的定义与如下定义是等价的: class DateOfY
文档评论(0)