- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言试题、学、考试大全31
TechEd 2002 10.继承(inheritance) 10.1.1 类层次结构 几个概念: 基类(父类) 派生类(子类):从基类派生而成的类 基类和派生类:构成类的层次关系 10.1.2 派生类对象构造(Derived Object Structure) 基类:BaseClass class BaseClass{ int a,b; //other private member public: //public member }; 派生类:B class B : public BaseClass{ int c; //other private member public: //public member }; 10.2 访问父类成员 10.2.1 继承父类成员 //=========================================== // f1001.cpp // 继承 //=========================================== #includeiostream #includestring using namespace std; //------------------------------------------- class Advisor { int noOfMeeting; }; //------------------------------------------- class Student { string name; int semesterHours; double average; public: Student(string pName = noname) :name(pName),average(0),semesterHours(0){} void addCourse(int hours,double grade) { double totalGrade = (semesterHours*average + grade); //总分 semesterHours += hours; //总修学时 average = semesterHours ? totalGrade/semesterHours : 0; //平均分 } int getHours() { return semesterHours; } double getAverage() { return average; } void display() { coutname = \name\ ,hours = semesterHours ,average = averageendl; } }; class GraduateStudent:public Student { Advisor advisor; int qualifierGrade; public: int getQualifier() { return qualifierGrade; } }; void main() { Student ds(Lo lee Undergrad); GraduateStudent gs; ds.addCourse(3,2.5); ds.display(); gs.addCourse(3,3.0); gs.display(); } 图 GraduateStudent 内存布局 example GraduateStudent gs; Student s(gs); Student t = gs; Student* t = gs; example void fn(Student s){ //任何S想要做的事 } void gn(){ GraduateStudent gs; fn(gs); } C++面向对象编程中一条重要的规则是: 公有继承意味着”是一个”(is a) 对于class D : public B; 当写下类D(”Derived”)从类B(”Base”)公有继承时,你实际上是在告诉编译器(以及读这段代码的人):类型D的每一个对象也是类型B的一个对象,但反之不成立; 也就是说,B表示一个比D更广泛的概念,D表示一个比B更特定概念;你是在声明:任何可以使用类型B的对象的地方,类型D的对象也可以使用,因为每个类型D的对象是一个类型B的对象。相反,如果需要一个类型D的对象,类型B的对象就不行:每个D 是一个 B, 但反之不成立。 看这个例子: class Person { ...
文档评论(0)