定义派生类对象是如何给基类成员变量赋初值

john_hsfuui 2008-10-08 10:54:31
请教各位大虾:C++中有如下的类定义
// .h
class Box{
public:
Box(double lv,double wv,double hv);

protected:
double lenght;
double width;
double height;
};

// .cpp
Box::Box(double lv,double wv,double hv):length(lv),width(wv),height(hv){}

// .h
class Carton : public Box{
protected:
double ht;
};

// .cpp
Carton::Carton(double ht) : Box(lv,wv,hv){}

在定义Carton类对象时,如何对基类的成员赋值啊,非常感谢



...全文
282 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
OenAuth.Core 2008-10-08
  • 打赏
  • 举报
回复

class Carton : public Box{
protected:
double ht;
public:
Carton(double lv,double wv,double hv,double dht) : Box(lv,wv,hv),ht(dht){} //要有这个构造函数
};


int main()
{
Carton *test=new Carton(1,1,1,1);//调用时一个一个写
}
chenyi3315 2008-10-08
  • 打赏
  • 举报
回复
弄个这样的构造函数
Carton::Carton(double param_ht,double lv,double wv,double hv) : ht(param_ht),Box(lv,wv,hv){}

Carton *pCarton = new Carton(...)括号里面就按照上面的顺序填
chenyi3315 2008-10-08
  • 打赏
  • 举报
回复
弄个这样的构造函数
Carton::Carton(double param_ht,double lv,double wv,double hv) : ht(param_ht),Box(lv,wv,hv){}

Carton *pCarton = new Carton(...)括号里面就按照上面的顺序填
jia_xiaoxin 2008-10-08
  • 打赏
  • 举报
回复
Carton::Carton(double ht) : Box(lv,wv,hv){}
要这样写
Carton::Carton(double ht,double lv,double wv,double hv) : Box(lv,wv,hv){}

john_hsfuui 2008-10-08
  • 打赏
  • 举报
回复
谢谢,我的意思是在申明一个变量的时候怎么写如定义Carton *pCarton = new Carton(...)//根据构造函数,这后面该怎么写,才能给基类成员赋值,是紫括号里依次填上所有的值吗?谢谢
OenAuth.Core 2008-10-08
  • 打赏
  • 举报
回复
照你的情况只能给Carton类加一个这样的构造函数:Carton::Carton(double lv,double wv,double hv) : Box(lv,wv,hv){}
或者给Box加一个默认的构造函数
Vitamin_C_PP 2008-10-08
  • 打赏
  • 举报
回复
Carton::Carton(double ht) : Box(lv,wv,hv){}
这个子类构造函数不是调用了基类构造函数Box吗
fox000002 2008-10-08
  • 打赏
  • 举报
回复
子类里提供相应的构造函数啊

如 Carton(double ht, double lv,double wv,double hv)

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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