• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






hao02171990

记录点滴的自我。
 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

2013年8月28日

结构体对齐
摘要: 1,比如:struct{ short a1; short a2; short a3; }A; struct{ long a1; short a2; }B; sizeof( A)=6, sizeof( B)=8,为什么? 注:sizeof(short)=2,sizeof(long)=4因为:“成员对齐有一个重要的条件,即每个成员按自己的方式对齐.其对齐的规则是,每个成员按其类型的对齐参数(通常是这个类型的大小)和指定对齐参数(这里默认是8字节)中较小的一个对齐.并且结构的长度必须为所用过的所有对齐参数的整数倍,不够就补空字节.”(引用) 结构体A中有3个short类型变量,各自以2字节对齐,结构 阅读全文
posted @ 2013-08-28 21:50 某某郝 阅读(246) 评论(0) 推荐(0)
 
浅析C++中的虚函数
摘要: 一、定义 定义:在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数。语法:virtual 函数返回类型函数名(参数表) { 函数体 } 用途:实现多态性,通过指向派生类的基类指针,访问派生类中同名覆盖成员函数 虚函数必须是基类的非静态成员函数,其访问权限可以是protected或public。定义为virtual的函数是基类期待派生类重新定义的,基类希望派生类继承的函数不能定义为虚函数。二、作用 虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合适的成员函数,在定义了虚函数后,可以在基类的派生类中对虚函数重新定义,在派生类中重新定义的函数应与虚函数具... 阅读全文
posted @ 2013-08-28 21:43 某某郝 阅读(267) 评论(0) 推荐(0)
 
C++中指向派生类的基类指针————————经典
摘要: #include class A{public:void a1(){std::cout vt();// 正确:输出为 b (多态性)pA->a1();// 正确:输出为 a1//pA->a2();// 错误:pA无权访问私有成员函数 a2//pA->a3();// 错误:pA无权访问保护成员函数 a3//pA->b1();// 错误:b1 不是 类A 的成员函数//pA->b2();// 错误:b2 不是 类A 的成员函数//pA->b3();// 错误:b3 不是 类A 的成员函数std::cout vt();// 正确:输出为 b (多态性)pb-> 阅读全文
posted @ 2013-08-28 21:21 某某郝 阅读(4210) 评论(0) 推荐(0)
 
对于基类和派生类中的多态及重载的最好解释方法
摘要: 虚函数是在基类中定义的,目的是不确定它的派生类的具体行为。例: 定义一个基类:class Animal//动物。它的函数为breathe()//呼吸。 再定义一个类class Fish//鱼 。它的函数也为breathe() 再定义一个类class Sheep //羊。它的函数也为breathe() 为了简化代码,将Fish,Sheep定义成基类Animal的派生类。 然而Fish与Sheep的breathe不一样,一个是在水中通过水来呼吸,一个是直接呼吸空气。所以基类不能确定该如何定义breathe,所以在基类中只定义了一个virtual breathe,它是一个空的虚函数。具本的函数在子类 阅读全文
posted @ 2013-08-28 21:10 某某郝 阅读(373) 评论(0) 推荐(0)