C++多态公有继承

来源:互联网 发布:淘宝店铺怎么增加流量 编辑:程序博客网 时间:2024/04/28 22:30
SetName方法

  1. #include <iostream>
  2. #include <string>
  3. #include <stdio.h>
  4. using namespace std;

  5. class student{
  6. public:
  7.     student(){
  8.         printf("%s constructor\n", __FUNCTION__);
  9.     }
  10.     virtual ~student(){
  11.         printf("%s destructor\n", __FUNCTION__);
  12.     }

  13.     virtual void SetName(string name){
  14.         printf("%s name = %s\n", __FUNCTION__, name.c_str());
  15.         m_name = name;
  16.     }
  17. private:
  18.     string m_name;
  19. };

  20. class studentLeader:public student{
  21. public:
  22.     studentLeader() {
  23.         printf("%s constructor\n", __FUNCTION__);
  24.     }
  25.     virtual ~studentLeader(){
  26.         printf("%s destructor\n", __FUNCTION__);
  27.     }
  28.     //virtual 可选,因为基数student已经声名为virtual,这里再次声名是说明重载基数的同名方法
  29.     virtual void SetName(string name){
  30.         m_name = name + "--second--";
  31.         printf("%s name = %s\n", __FUNCTION__, m_name.c_str());
  32.     }
  33. private:
  34.     string m_name;
  35. };

  36. class studentLeader2:public studentLeader{
  37. public:
  38.     studentLeader2() {
  39.         printf("%s constructor\n", __FUNCTION__);
  40.     }
  41.     ~studentLeader2(){
  42.         printf("%s destructor\n", __FUNCTION__);
  43.     }
  44. private:
  45.     string m_name;
  46. };

  47. int main(int argc, char **argv)
  48. {
  49.     studentLeader2*s = new studentLeader2();
  50.     s->SetName("12");
  51.     delete s;
  52.     return 0;
  53. }

  1. ./a.out

  2. student constructor
  3. studentLeader constructor
  4. studentLeader2 constructor
  5. SetName name = 12--second--
  6. ~studentLeader2 destructor
  7. ~studentLeader destructor
  8. ~student destructor


<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(266) | 评论(0) | 转发(0) |
0

上一篇:C+=析构函数应当是虚函数,除非类不用作基数。

下一篇:装饰模式

相关热门文章
  • c++几种类型转换的相关介绍...
  • 【Android体系】Android基础知...
  • java 继承练习
  • 浏览器缓存机制
  • 使用C++实现QML的TreeView Mod...
  • test123
  • 编写安全代码——小心有符号数...
  • 使用openssl api进行加密解密...
  • 一段自己打印自己的c程序...
  • 彻底搞定C语言指针详解-完整版...
  • linux dhcp peizhi roc
  • 关于Unix文件的软链接
  • 求教这个命令什么意思,我是新...
  • sed -e "/grep/d" 是什么意思...
  • 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
原创粉丝点击