VC++中如果类包含有纯虚函数,则类必须声明为抽象类,如下:

class CGDIElement abstract    //类包含纯虚函数时,必须定义为抽象类
{
public:
 CGDIElement(void);            //构造函数不能是虚函数,派生类继承方式见后

virtual ~CGDIElement(void);  //析构函数如果要让派生类继承,必须定义为虚函数

virtual void Init(void) = 0; //纯虚函数
};

派生类的定义如下:

class CGDILine : public CGDIElement
{
public:
 CGDILine(void) :CGDIElement() //调用基类的构造函数

{  };
 virtual ~CGDIElement(void);   //派生类的虚析构函数能够自动调用基类的析构函数
 virtual void Init (void){};   //基类的纯虚函数在派生类中重载,不能执行基类的纯虚函数,因为其不存在。

};

第三级派生类定义如下:

class CGDIDotLine : public CGDILine
{
public:

virtual void Init (void)

{ CGDILine::Init();         //派生类必须显性调用基类的函数

};
};

VC++ (三)虚函数与重载相关推荐

  1. c++ public 函数名相同_C++虚函数、重载、覆盖

    C++基础(五)虚函数.重载.覆盖.隐藏 虚函数总是跟多态联系在一起,引入虚函数可以使用基类指针对继承类对象进行操作!虚函数:继承接口(函数名,参数,返回值),但是实现不继承(函数体) 非虚函数:继承 ...

  2. c语言纯虚函数,关于c ++:纯虚函数的重载

    我通常使用纯虚拟函数来处理代码所要求的那些方法,以使其工作良好.因此,我创建接口,然后其他用户实现其派生类.派生类只有这些作为公共的虚拟函数,而一些额外的方法应该作为私有的实现,因为我的代码不调用它们 ...

  3. C# 虚函数和重载函数

    虚函数就是在这个函数声明前加上virtual  这样这个函数在它的派生类(子类)中可以被重写 而子类在重写父类的虚函数时,要显式的加上override 用处:就是可以在子类中被重写,当你继承一个类时, ...

  4. C/C++基础语法复习(三):C++重载函数,多态,虚函数

    1.重载运算符和重载函数: C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载. 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它 ...

  5. 坚持学习100天:多态(函数重载、虚函数和多态)

    前言 Hello,我是修齊. 学习C++的第一百零一十天,将近五一假期了,不浪漫亦是罪名,男生今年不能再挨批斗了,放假就得好好陪陪身边的人浪漫浪漫,生活,加油,学习加油. 在这里记录一些学习的东西和学 ...

  6. c/c++开发,无可避免的自定义类类型(篇三).类与虚函数

    深入而全面了解virtual虚函数与类设计关系 目录 一.virtual 函数说明符的作用 二.virtual 成员函数与普通成员函数 三.不必每个派生类重定义virtual 函数 四.派生类可以兼顾 ...

  7. 【C/C++】概念: VC虚函数布局引发的问题

    2011-04-21 16:48:25|  分类: C / C++|字号 订阅 在网上看到一个非常热的帖子,里面是这样的一个问题: 在打印的时候发现pFun的地址和 &(Base::f)的地址 ...

  8. 重载函数与虚函数的区别

    重载函数与虚函数的区别: 重载函数只要求函数有相同的函数名,并且重载函数是在相同作用域中定义的名字相同的不同函数.而虚函数不仅要求函数名相同,而且要求函数的签名.返回类型也相同.也就是说函数原型必须完 ...

  9. C++中为什么要引入抽象基类和纯虚函数?

    为什么要引入抽象基类和纯虚函数? 主要目的是为了实现一种接口的效果. 抽象类是一种特殊的类,它是为了抽象和设计的目的为建立的,它处于继承层次结构的较上层. ⑴抽象类的定义:带有纯虚函数的类为抽象类. ...

最新文章

  1. python修改nginx配置文件_zookeeper 动态管理nginx配置
  2. Jquery里live事件移除原因
  3. Python处理大数据量文本数据思路
  4. elementui 加载中_ElementUI cascader级联动态加载回显和搜索看这个就够了
  5. 给大家推荐一位我非常佩服的Python工程师 人生赢家
  6. Vue(ES6)中的data属性为什么不能是一个对象?
  7. 关于服务器虚化的优势,vmware虚化优势.docx
  8. java反编译工具_JDA Java反编译工具的下载和使用手册
  9. linux 下安装ecos开发环境,Ubuntu 10.04中安装eCos 3.0
  10. Android替换开机动画
  11. 2022年第十三届蓝桥杯省赛B组python题目部分解题
  12. js 鼠标放置图片展示大图并跟随鼠标移动
  13. c语言pow函数原型_c语言pow的用法
  14. mysql容灾备份和恢复_关于容灾备份和恢复
  15. 信号完整性(SI)电源完整性(PI)学习笔记(二十一)差分对与差分阻抗(一)
  16. 5G时代的网盘,直接送1000G空间!
  17. 男人至少的道德底线(男女都该看)
  18. 失物招领系统软件测试,失物招领系统(原创)
  19. pdfminer __init__() got an unexpected keyword argument ‘codec‘解决方案
  20. fedora下关掉那讨厌的beep beep beep

热门文章

  1. java jmenuitem重新渲染_的Java的JMenuItem添加邊框的第二菜單項
  2. python csv读取数据 去掉标题-Python读csv文件去掉一列后再写入新的文件实例
  3. 安卓手机玩游戏卡顿怎么解决_手机卡顿怎么办?教你3个实用解决方法,两分钟解决卡顿难题!...
  4. pythonxml解析拿到控件坐标_Python解析xml中dom元素的方法
  5. 比较两个日期大小和获取当前月最大天数的存储过程
  6. 动态规划之硬币表示问题
  7. 在hadoop/hbase等代码中kinit
  8. HBase: Thrift写数据报错——socket.error: [Errno 32] Broken pip
  9. 知识蒸馏在推荐系统中的应用
  10. IT架构的本质:工作12年,我的五点感悟