菜鸟求教!!!

夜风似影 2012-04-01 11:14:06
class TruckLoad{

......

class Package{
public:
Box* pBox; ///这条语句和下一条语句创建的是对象,还是指向对象的指针啊
Package* pNext;//这块老搞不懂....

void setNext(Package* pPackage);
Package(Box* pNewBox);
}

.......

}

TruckLoad::Package::Package(Box* pNextBox):pBox(pNextBox,pNext(0)){}

为什么声明构造函数的时候是一个参数,而定义的时候就成了两个参数初始化了?
...全文
143 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
丰清云淡 2012-04-08
  • 打赏
  • 举报
回复
class TruckLoad{

......

class Package{
public:
Box* pBox; //这里不是创建,只是一个指针的声明

//pNext是指向本类的指针,这里如果声明成Package next则会失败,编译器不能识别Package,在这里只解析成声明
Package* pNext;

void setNext(Package* pPackage);
P……

你这儿写错了TruckLoad::Package::Package(Box* pNextBox):pBox(pNextBox,pNext(0)){}
应该改为:
TruckLoad::Package::Package(Box* pNextBox):pBox(pNextBox),pNext(0)
{}
summer_insects 2012-04-03
  • 打赏
  • 举报
回复
不会
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:
Box* pBox; ///这条语句和下一条语句创建的是对象,还是指向对象的指针啊
——后者

Package* pNext;//这块老搞不懂....
——学过链表么

TruckLoad::Package::Package(Box* pNextBox):pBox(pNextBox,pNext(0)){}
为什么声明构造函数的时候是一个参数,而定义的时候……
[/Quote]
夜风似影 2012-04-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
Box* pBox; ///这条语句和下一条语句创建的是对象,还是指向对象的指针啊
——后者

Package* pNext;//这块老搞不懂....
——学过链表么

TruckLoad::Package::Package(Box* pNextBox):pBox(pNextBox,pNext(0)){}
为什么声明构造函数的时候是一个参数,而定义的时候就成了两个参数初始化了?
—……
[/Quote]
问题是声明的时候是一个参数,为什么初始化就多了一个pNext(0)这个参数的初始化
这不会调用构造函数不成功吗?
summer_insects 2012-04-01
  • 打赏
  • 举报
回复
Box* pBox; ///这条语句和下一条语句创建的是对象,还是指向对象的指针啊
——后者

Package* pNext;//这块老搞不懂....
——学过链表么

TruckLoad::Package::Package(Box* pNextBox):pBox(pNextBox,pNext(0)){}
为什么声明构造函数的时候是一个参数,而定义的时候就成了两个参数初始化了?
——另外一个变量(pNext)不需要用其他值初始化,一律用0(NULL)来初始化

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧