
C++构造函数调用问题???在线等??
classA{public:A(inti){a=i;cout<<"called".<<a<<endl;}~A(){cout<<"call".<<a<<endl;}void...
class A
{public:
A (int i)
{a=i;cout<<"called".<<a<<endl;}
~A()
{cout<<"call".<<a<<endl;}
void print ()
{cout<<a<<',';}
int Geta ()
{ return a;}
private:
int a;
};
class B :public A
{ pubilc:
B(int i,int j,int k) :A(i),aa(j)
{b=k;cout<<"called",<<b<<endl;}
~B()
{cout<<"call".<<b<<endl;}
void print()
{A::print();
cout<<b<<','<<aa.Geta()<<endl;}
private:
int b;int a;
};
void main()
{
B bb[2];
bb[0]=B(7,8,9)
bb[1]=b(12,13,14)
for(inti=0;i<2;i++)
bb[i].print();
}
程序结果是called.7
called.8
called.9
call.9 =======1
call.8 =======2
call.7 =======3
called.12
called.13
called.14
call.14 =========4
call.13 =======5
call.12 =======6
7,9,8
12,14,13
call.14
call.13
call.12
call.9
call.8
call.7
我的问题是构造函数怎么会出现在1~6的位置呢?它的程序还没有结束。怎么就开始调用构造函数了???高手指点下。要详细。最后还加分!!! 展开
{public:
A (int i)
{a=i;cout<<"called".<<a<<endl;}
~A()
{cout<<"call".<<a<<endl;}
void print ()
{cout<<a<<',';}
int Geta ()
{ return a;}
private:
int a;
};
class B :public A
{ pubilc:
B(int i,int j,int k) :A(i),aa(j)
{b=k;cout<<"called",<<b<<endl;}
~B()
{cout<<"call".<<b<<endl;}
void print()
{A::print();
cout<<b<<','<<aa.Geta()<<endl;}
private:
int b;int a;
};
void main()
{
B bb[2];
bb[0]=B(7,8,9)
bb[1]=b(12,13,14)
for(inti=0;i<2;i++)
bb[i].print();
}
程序结果是called.7
called.8
called.9
call.9 =======1
call.8 =======2
call.7 =======3
called.12
called.13
called.14
call.14 =========4
call.13 =======5
call.12 =======6
7,9,8
12,14,13
call.14
call.13
call.12
call.9
call.8
call.7
我的问题是构造函数怎么会出现在1~6的位置呢?它的程序还没有结束。怎么就开始调用构造函数了???高手指点下。要详细。最后还加分!!! 展开
2个回答
展开全部
贴的代码B构造中aa是咋回事?
代码只看就发现有多处错误
A (int i){a=i;cout<<"called".<<a<<endl; } //"called". ??
~A(){cout<<"call".<<a<<endl;} //"call".??
{b=k;cout<<"called",<<b<<endl;} //"called", ??
///...
代码只看就发现有多处错误
A (int i){a=i;cout<<"called".<<a<<endl; } //"called". ??
~A(){cout<<"call".<<a<<endl;} //"call".??
{b=k;cout<<"called",<<b<<endl;} //"called", ??
///...
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询