C++的一个关于类继承问题

2024-12-31 00:33:53
推荐回答(3个)
回答1:

是不是程序有点问题啊
class sub:public Base
{public:
Base(){b=0} //是不是把Base()改成sub()啊
Base(int i) {b=i} //同上
viod print (){Base::print();cout<private:
int b};
sub2.print()里面调用了Base类的print函数,所以第一个输出为0,接着输出b的值为5.

回答2:

--但sub sub2(5)这条语句只给b赋值了吗?为什么a没有值?sub继承了base类的所有语句,那a应该也被赋值了吧?

---基类中的函数都被重载了。运行sub2(5)时,调用的是子类的sub(int i){b=i;},不是基类的构造函数。执行Base::print();时调用了基类的构造函数,系统默认是Base(){b=0}。

回答3:

Base(){b=0}
Base(int i) {b=i} 这里写错了吧?