易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
读C++ Primer 之构造函数陷阱
读C++ Primer 之构造函数陷阱
/*
* author:xizero00
* mail: xizero00@163.com
* date:2011-08-07 21:00:59
* constructor trap
*/
#include <iostream>
using
namespace
std;
class
Base
{
public
:
//默认构造函数
Base(): d( 0 ) {}
//带一个参数的构造函数
Base(
int
val ) : d( val ) { cout <<
"基类构造函数: val = "
<< val << endl; }
public
:
int
d;
};
class
Inherit :
public
Base
{
public
:
//默认构造函数
Inherit():Base() {}
//带一个参数的构造函数
//在执行此构造函数的时候会调用基类的相应的构造函数
//但是,问题就出在这个继承下来的d,它并没有被初始化,这里必须要注意!
Inherit(
int
v ): Base( v + d ) { cout <<
"子类构造函数: v = "
<< v <<
" d = "
<< d << endl; }
};
int
main(
int
argc ,
char
**argv )
{
Inherit i( 1 );
return
0;
}
将文件存为trap.cc编译命令为:
g++ trap.cc -o trap -g
执行结果为:
基类构造函数: val = 12382197
子类构造函数: v = 1 d = 12382197
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图