永发信息网

c++问题~~帮忙解决下~

答案:1  悬赏:70  手机版
解决时间 2021-07-29 07:51
  • 提问者网友:精神病院里
  • 2021-07-28 14:36

#include<iostream.h>
class base
{
public:
base(){a=0;}
base(int i){a=i;}
void print(){cout<<"a="<<a<<endl;}
int geta(){return a;}
private:
int a;
};
class derived:public base
{
public:
derived(){b=0;}
derived(int i,int j): base(i),b(j){}
void print()
{
base::print();
cout<<"b="<<b<<endl;
}
private:
int b;
};
void func(base& bb)
{
cout<<bb.geta()*10<<endl;
}
int main(void)
{
derived obj2(9,5);
base obj1(5);
obj1=obj2;
obj1.print();
base *pbase=new base(8);
derived *pderived=new derived(1,2);
pbase=pderived;
pbase->print();
func(obj2);
return 0;
}

我想问下

derived(int i,int j): base(i),b(j){}

这句代码什么意思?b(j){}在这做什么用?

最佳答案
  • 五星知识达人网友:有你哪都是故乡
  • 2021-07-28 15:42

dervied类继承base类,base类有两个构造方法,一个是无参的base(),一个是有参数的base(int i)。


derived(int i, int j)的冒号后面是一个初始化参数列表,作用是在进入构造函数前完成对某些数据的初始化工作。


如果没有在这后面加上base(i)的话,就会默认调用无参的构造方法base(),加上了则调用有参的base(int i)。


而b(j)则表示成员变量b的初始值为j。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯