网站大量收购独家精品文档,联系QQ:2885784924

c与c的区别教材教学稿件.ppt

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
complex complex:: operator +(complex c2) //重载函数实现 { complex c; c.real=c2.real+real; c.imag=c2.imag+imag; return complex(c.real,c.imag); } * complex complex:: operator -(complex c2) //重载函数实现 { complex c; c.real=real-c2.real; c.imag=imag-c2.imag; return complex(c.real,c.imag); } * int main() //主函数 { complex c1(5,4),c2(2,10),c3; //声明复数类的对象 coutc1=; c1.display(); coutc2=; c2.display(); c3=c1-c2; //使用重载运算符完成复数减法 coutc3=c1-c2=; c3.display(); c3=c1+c2; //使用重载运算符完成复数加法 coutc3=c1+c2=; c3.display(); } * 程序输出的结果为: c1=(5,4) c2=(2,10) c3=c1-c2=(3,-6) c3=c1+c2=(7,14) * 继承中的一个问题 长方形的面积:Area=W*H; 正方形的面积:Area=L*L; 正方形从长方形继承而来,显然就有了两个同名但操作并不相同的求面积的成员函数,当计算正方形面积时,怎么样才能准确调用正方形派生类中的函数呢? 长方形 rectangle 正方形 square 继承 #includeiostream class Point { public: Point(double i, double j) {x=i; y=j;} double Area() const{ return 0.0;} private: double x, y; }; class Rectangle:public Point { public: Rectangle(double i, double j, double k, double l); double Area() const {return w*h;} private: double w,h; }; Rectangle::Rectangle(double i, double j, double k, double l) :Point(i,j) { w=k; h=l; } void fun(Point s) // s用到了引用 { coutArea=s.Area()endl; } int main() { Rectangle rec(3.0, 5.2, 15.0, 25.0); fun(rec); } 运行结果: Area=0 虚函数 虚函数(Virtual):若某类中的一个成员函数被说明为虚函数,就意味着成员函数在派生类中可能存在着不同的实现 在类的声明中,在函数原型之前写virtual Virtual 函数类型 函数名(形参表) { 函数体 } virtual 只用来说明类声明中的原型,不能用在函数实现时。 虚函数 具有继承性,基类中声明了虚函数,派生类中无论是否说明,同原型函数都自动为虚函数。 本质:不是重载声明而是覆盖。 调用方式:通过基类指针或引用,执行时会 根据指针指向的对象的类,决定调用哪个函数 #includeiostream class Point { public: Point(double i, double j) {x=i; y=j;} virtual double Area() const{ return 0.0;} // virtual:虚函数 private: double x, y; }; class Rectangle:public Point { public: Rectangle(double i, double j, double k, double l); virtual double Area() const {return w*h;} // virtual:虚函数 private: double w,h; };//其他函数同上例 void fun(Point s) { coutArea=s.Area()endl; } int main() { Rectangle rec(3.0, 5.2, 15.0, 25.0); fun(rec); } 运行结果: Area=375 int max(int

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档