设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
C++关于构造函数的初始化问题
返回列表
发新帖
C++关于构造函数的初始化问题
[复制链接]
11
|
5
|
2011-8-15 18:56:25
|
显示全部楼层
|
阅读模式
假如有一个类:CMFCView,他的构造函数是CMFCView() ;
定义构造函数:CMFCView()
{
x = 0 ;
y = 0 ; //假设有两个成员变量x,y
}
这是我所知道的,即初始化变量是在构造函数函数体里面的,可是最近在学MFC时,
VS2008中通过MFC向导建立的源文件中,初始化变量是这么进行的:
CMFCView::CMFCView()
: x(0)
, y(0)
{
// TODO: 在此处添加构造代码
}
这是一种什么用法?能解释的越详细越好,在这里先谢谢大家~\(≧▽≦)/~啦啦啦
第二种里面函数体里面都加些神马啊
回复
使用道具
举报
千问
|
2011-8-15 18:56:25
|
显示全部楼层
构造函数运行的过程有两步。一是初始化,就是你说的: x(0) , y(0)。二是执行函数体。注意如果没有显式指明x(0) , y(0)(你的第一种),即没有显式的调用x,y的构造函数进行初始化,x,y仍然会被初始化(调用默认构造函数)...
回复
使用道具
举报
千问
|
2011-8-15 18:56:25
|
显示全部楼层
CMFCView::CMFCView()
: x(0)
, y(0)中的0 , 0 就是你在初始化x,y时直接对他们进行的赋值,效率高而已。...
回复
使用道具
举报
千问
|
2011-8-15 18:56:25
|
显示全部楼层
这叫作:初始化列表,用把括号里的值赋值,效果一样,不过有些情况必须这样写,你可以查查,楼上的说的只是一种情况。大括号里是对派生类新增数据成员赋值用的。...
回复
使用道具
举报
千问
|
2011-8-15 18:56:25
|
显示全部楼层
一般纯粹是初始类中私有数据成员的时候,才会用第二种.函数体里面不用加任何其它语句了....
回复
使用道具
举报
千问
|
2011-8-15 18:56:25
|
显示全部楼层
“:”后面叫初始化列表效果一样也是 x = 0;y = 0;...
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行