这是构造函数的什么用法?
AdFront2 :: AdFront2 (const Box3d & aboundingbox)
: boundingbox(aboundingbox),
linesearchtree(boundingbox.PMin(), boundingbox.PMax()),
pointsearchtree(boundingbox.PMin(), boundingbox.PMax()),
cpointsearchtree(boundingbox.PMin(), boundingbox.PMax())
{
nfl = 0;
allflines = 0;
minval = 0;
starti = lines.Begin();
}
如上面所示的代码段,是AdFront2的构造函数的定义,此构造函数的声明为
AdFront2 (const Box3d & aboundingbox);
这里构造函数的形参只有一个,在定义时为什么冒号后面跟了那么多?AdFront2这个类是一个独立的类,跟其他类没有任何继承和派生关系。那为什么后面会跟这么多呢?请大家指点一下,谢谢。
[解决办法]
成员变量的初始化列表
[解决办法]
2楼 正解
[解决办法]
构造函数后面的冒号开始肯定是成员变量初始化列表
[解决办法]
在冒号和花括号之间的代码称为构造函数的初始化列表。构造函数的初始化列表
为 类 的一个或多个数据成员指定初值。//楼主该买本书去看下。。。。
[解决办法]
嗯,用用就知道了,可以给成员变量赋某常量值,不一定是形参的值。。。。
[解决办法]
冒号后是给成员初始化。
成员初始化的格式如 a(a初始化值), b(b初始化值)……
如果a、b是类对象,那么是把对应初始化值传给这个类的构造函数的。
花三天先系统看本书吧。
[解决办法]
AdFront2 :: AdFront2 (const Box3d & aboundingbox)
: boundingbox(aboundingbox),
linesearchtree(boundingbox.PMin(), boundingbox.PMax()),
pointsearchtree(boundingbox.PMin(), boundingbox.PMax()),
cpointsearchtree(boundingbox.PMin(), boundingbox.PMax())
/*
boundingbox
linesearchtree
pointsearchtree
cpointsearchtree
些都是AdFront2的成量,
括中的是造些成量所需要的,
boundingbox(aboundingbox),
aboundingbox 是造AdFront2的.
linesearchtree
pointsearchtree
cpointsearchtree
用到已造好的boundingbox
*/
{
nfl = 0;
allflines = 0;
minval = 0;
starti = lines.Begin();
}
[解决办法]
google 初始化列表
[解决办法]
lz要加油啊~~~~
[解决办法]
我不知道你这个类中linesearchtree,
pointsearchtree,
cpointsearchtree
是怎么定义的,很明显一个形参是另一个类的对象,然后用这个对象来初始化其他的成员变量。不知道你这个类中有几个成员变量?
[解决办法]
ctor-initializer