Chinaunix首页 | 论坛 | 博客
  • 博客访问: 173484
  • 博文数量: 47
  • 博客积分: 992
  • 博客等级: 准尉
  • 技术积分: 565
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-08 21:57
文章分类

全部博文(47)

文章存档

2019年(1)

2018年(1)

2017年(1)

2014年(6)

2013年(1)

2012年(2)

2011年(35)

我的朋友

分类: C/C++

2017-03-03 10:45:12

C++中,虚拟函数在构造函数和析构函数中调用时,并不会产生到派生类的动态联遍(dynamic binding)效果。实际上,此种情况下所调用的虚函数将会执行自己(相对于声明构造和析构函数的类)类或基类的该函数。
下面例子

class A
{
public:
  A(){};
  virtual func1();
  virtual func2();
};

class B : public A
{
public:
  B()
  {
     func1();
     func2();
   }

  virtual func1();
};

class C : public B
{
public:
  C() {};
  virtual func1();
  virtual func2();
};

C c;     

//这里的c构造执行顺 序
1. A::A()
2. B::B()
  2.1 B::func1(),   注意,不是C::func1()
  2.2 A::func2(), 注意,因无B::func2(),故调用A::func2()
3. C::C()

以上

阅读(472) | 评论(0) | 转发(0) |
0

上一篇:web framework benchmark

下一篇:一些开源项目

给主人留下些什么吧!~~