树欲静而风不止btpka3.blog.chinaunix.net
btpka3
全部博文(135)
2012年(29)
2011年(41)
2010年(26)
2009年(12)
2008年(9)
2007年(12)
2006年(6)
zhangdiv
hcu5555
jayflygo
韩仪ails
沐依静
jiangzhe
cheercho
shanggua
609854
lzyunv
格伯纳
yuanzh78
Otokaze
masterro
bcskydri
tyshan
wangyinh
oyjyb
分类: C/C++
2007-06-17 11:48:22
/* 吼吼,给大一的新生当个实验助教,偶是肯定不够格的,不过谁叫咱这个软件学院缺人手呢! 面对新生,回忆自己学习时遇到的困难,简单将类的继承与多态的知识点以自己的理解总结 给大家吧,如有错误还望赐教! btpka3@163.com 2007-6-17 11:43am */ #include using std::cout; using std::endl; class BaseClass{ public: /*virtual*/ void print() =0 { //请去掉注释后查看结果有何不同, 并思考为什么? //virtual, =0 只能在声明时使用, 在定义时(cpp中)不能有! //const 在定义时不能省 cout<<"AAA"<print(); //virtual: AAA; !virtual: AAA baseClass_p = & subClass; //父类指针指向子类对象 baseClass_p->print(); //virtual: BBB; !virtual: AAA } /* 总结如下: override 与 overload override 可以理解为 覆盖, 重定义, 重写, 是指子类可以写一个函数原型(包括参数列表, 返回值类型) 与父类一模一样的成员方法, overload 可以理解为 重载, 它不涉及类的层次, 它是指可以通过参数列表的不同同时写出多个 同名函数! 上述的 baseClass.print(); subClass.print(); 均可以属于 override; virtual的含义: 不用virtual的话, 父类指针指向子类对象时, 它会根据指针的类型确定调用父类还是子类的方法; 若用virtual的话, 父类指针指向子列对象时, 它会根据指针所指对象的类型(而非指针的类型)来确定该 调用子类还是父类的方法!! 函数原型 = 0 的含义: (它和 关键字 virtual 没有必然联系) 是指 子类如果不想成为 抽象类 的话, 就必须实现它, 但是父类实现与否均可. 函数原型后的 const : 只是将该方法设定为只读函数,任何对类数据成员的修改都将造成运行时错误 virtual , = 0, const 三者之间没有什么必然联系,不会因为某一个出现而其他就不能出现, 或者某一个出现而另一个就得必须出现,理解他们的含义后均可独立应用。 */
上一篇:C/C++复习: 关于指针和数组
下一篇:java 配置文件使用 - 解析使用默认命名空间的 xml文件
登录 注册