首页 > 代码库 > c++知识点总结--静态与动态类型
c++知识点总结--静态与动态类型
对象的静态类型(static type),就是它在程序中被声明时所采用的类型
对象的动态类型(dynamic type)是指“目前所指对象的类型”
vitual 函数是动态绑定而来,调用一个virtual函数时,究竟调用哪一个函数实现,取决于发出调用的那个对象的动态类型
class Shape{ public: enum ShapeColor{ Red, Green, Blue = 1, Org }; void printColor(){ cout << Red << Green << Blue << Org << endl; } virtual void draw(ShapeColor color = Red)const = 0; }; class Rectangle :public Shape{ public: virtual void draw(ShapeColor color = Green) const{ cout << "this is rectangle,color is " << color << endl; } }; class Circle :public Shape{ public: virtual void draw(ShapeColor color)const{ cout << "this is circle,color is " << color << endl; } }; static void test(){ Shape *ps; Shape *pc = new Circle; Shape *pr = new Rectangle; pc->draw(); pr->draw(); }默认参数是静态绑定,pr输出值仍然是Shape的默认值
c++知识点总结--静态与动态类型
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。