为了账号安全,请及时绑定邮箱和手机立即绑定
  • 加了 virtual关键字之后,变成虚函数,就调用了他的派生类的函数
    查看全部
  • 类型转换
    查看全部
    0 采集 收起 来源:[C++]RTTI

    2015-12-21

  • typeid(*obj).name(); //传进来的对象的类型名称 typeid(*obj) == typeid(Bird) //可以判断对象类型 Bird * bird = dinamic_cast<Bird *>(*obj); //<Bird *>说明 只能应用于指针、引用 的转换 //要转换的类型当中必须包含虚函数 //转换成功,返回子类地址,失败返回NULL
    查看全部
    0 采集 收起 来源:[C++]RTTI

    2018-03-22

  • 没有数据成员,仅有成员函数,成员函数又都是纯虚函数的类叫接口类
    查看全部
    0 采集 收起 来源:[C++]接口类

    2015-12-18

  • 构造函数不能使虚函数
    查看全部
  • 内联函数不能是虚函数
    查看全部
  • 静态函数不能是虚函数
    查看全部
  • 普通函数不能是虚函数
    查看全部
  • 虚析构函数
    查看全部
  • 什么是多态
    查看全部
    0 采集 收起 来源:[C++]虚函数

    2015-12-17

  • 在C++中多态的实现是通过虚函数表实现的
    查看全部
    0 采集 收起 来源:练习题

    2015-12-16

  • 有虚函数时,对象中首先存虚函数表指针,再存数据成员地址,没有虚函数时,首先存的是数据成员的地址。 有虚函数时,先使用指针 p 指向对象,访问的虚函数表指针,(*p)取得的是虚函数表地址,再使 p++ 就指向了数据成员,(*p)就能取得数据成员的值。
    查看全部
  • 对象的地址和虚函数表指针的区别:对象的地址是对象在内存中的第一个单元的地址,是对象在内存中的地址,而虚函数表指针是内存中对象的第一个单元存放的地址,这个地址值是虚函数表的地址。 当指针指向了对象的时候,就找到内存中存放对象的地址,然后就执行对象,由于对象第一个内存单元存放的是虚函数表指针,这个虚函数表指针指向虚函数表,于是就因此执行虚函数表。 本科最后一个例程中,p 指向 Shape 对象,这个对象只有一个标识符,用来标识这个对象的存在。对于 q 指向 Circle 对象,这个对象第一个位置存放的是数据成员的地址,q 指向这个地址,当取得这个地址的值 (*q) 时,就取得了其数据成员的值 100 。数据成员的地址就存放在对象的第一个内存单元。当一个指针 q 指向这个对象的时候,在执行对象的时候就执行对象的第一个内存单元,也就访问了这个成员函数,因而指针 q 指向对象的时候,取地址值 (*p)就取得了其成员函数的值。
    查看全部
  • 1.对象大小:指类实例化对象时,数据成员占有内存空间的大小,不包括成员函数。没有任何数据成员的类理论上讲不占任何内存。<br> 2.对象地址:指通过一个类实例化一个对象时,对象占有一定的内存单元,这个对象占据的第一个单元的地址即是对象的地址<br> 3.对象成员地址:指当用一个类实例化一个对象时,这个对象可能有多个数据成员,由于数据成员的数据类型不同,那么占据的空间大小也就不同,这个类的每个成员都会占一定的空间,每个数据成员的地址也就是对象成员的地址不同<br> 4.虚函数表指针:指在有虚函数时,实例化一个对象时,这个对象的第一块内存中存放的是一个指针,是虚函数表的地址,大小为4。<br> 5.如果实例化对象没有数据成员,就会有一个内存单元来标记这个对象的存在,如果对象中有数据成员,就不用内存单元来标记这个对象的存在,这个对象的大小就是数据成员所占内存的大小。
    查看全部
  • TPYE ID 的用法
    查看全部
    0 采集 收起 来源:[C++]RTTI

    2015-12-15

举报

0/150
提交
取消
课程须知
本课程是C++初级课程 1、熟练掌握C++语言基础语法
老师告诉你能学到什么?
1、虚函数、虚析构函数、纯虚函数 2、抽象类和接口类 3、运行时类别异常 4、异常处理

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!