[求助]继承问题
比如下面代码:#include <iostream>
using namespace std;
class A
{
private:
double x,y;
public:
A(double q,double w)
{
x=q;
y=w;
}
A()
{
x=0.0;y=0.0;
}
void showA()const
{
cout<<"x= "<<x<<" y= "<<y<<endl;
}
};
class B:public A
{
private:
char ch;
public:
B(double z,double r,char c1)
{
A(z,r);
ch=c1;
}
void show()const
{
(*this).showA();
cout<<"ch= "<<ch<<endl;
}
};
void main()
{
B b1(2.0,3.0,'n');
A a1(5.0,6.0);
b1.show();
a1.showA();
}
B类的构造函数B(double z,double r,char c1)
{
A(z,r);
ch=c1;
}
好像A(z,r)没有起作用。
就是即使先调用A类默认的构造函数创建A的对象,那么进入B的构造函数体时,这个
A(z,r)怎么解释?难道又建一个A类的对象?
但输出的是默认构造函数建立的对象内容!
还有个问题就是继承类B不需要默认的构造函数吗?