您的位置:首页 > 编程语言 > C语言/C++

c++子类中初始化父类成员变量

2015-09-30 17:03 549 查看
今天在看源码遇到一个问题,刚开始没看明白,后简化为如下代码:

#include <iostream>
typedef void (*func_type)(void);
class A{
public:
A(func_type func){
func_ = func;
};
void dofunc(){
func_();
}
func_type func_;
};
class B:public A{
public:
B():
A(&B::dofunc1){
}
static  void dofunc1(){
std::cout<<"do func"<<std::endl;
}
};
int main()
{
B b;
b.dofunc();
}
结果:

一眼看去,在子类的构造函数中似乎是构造了一个父类的匿名变量,但运行后发现实际做的是初始化了父类的成员变量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: