class a
{
  public:
  a(int x,int y);
}..........class b : public a
{
  public:
  b(int z) : a(400,300);   //就是这里有疑问}
................上面注释的疑问的地方,b 的构造函数,我想传两个不确定的数进去,应该怎么写我的意思是: b的构造函数调用 a 的构造函数时,给a传进去的不是 400,300,这两个常值 ,而是一个变值,在b实例化的时候可以传进去.
谢谢

解决方案 »

  1.   

     b(int z) : a(400,300); //就是这里有疑问
    -->
     b(int z1, int z2) : a(z1, z2); 
      

  2.   

    这样?
    b(int x, int y, int z):a(x, y);
      

  3.   

    b(z, a1, a2):a(a1, a2);class b(1,2,3);
      

  4.   

    class a
    {
      public:
      a(int x,int y);
    }..........class b : public a
    {
      public:
      b(int x,int y,int z) : a(x,y); //就是这里有疑问}定义变量
    b m_b(1,2,3);
      

  5.   

    楼长派生类的构造函数写错了。
    class A
    {
    public:
        A(int x1,int y1);
        int x;
        int y;
    };
    class B:public A
    {
    public:
        B(int x1,int y1,int z1):A(x1,y1)
        {
           z=z1;
        }
        int z;
    }楼长形参和实参最好不写成一样。如果要在类外实现子类的构造函数要写成:class B:public A
    {
    public:
        B(int x1,int y1,int z1);
        int z;
    }
    B::B(int x1,int y1,int z1):A(x1,y1)
    {z=z1;
    }