求C++大神解答问题!读程序~~快要考试了。。求大神帮忙丫~~

1.读程序题1)写出下面程序的运行结果。#include<iostream>classTestClass{public:TestClass(intnewValue){va... 1.读程序题1)写出下面程序的运行结果。
#include <iostream>
class TestClass
{
public:
TestClass( int newValue )
{
value = newValue;
std::cout<<"Value: "<<value<<", Constructed!\n";
}
TestClass( const TestClass & rhs)
{
value = rhs.value;
std::cout<<"Value: "<<value<<", Copy Constructed!\n";
}
~TestClass() { std::cout<<"Value: "<<value<<", Destructed!\n"; }
void setValue( int newValue) { value = newValue; }
int getValue()const { return value; }
private:
int value;
};
TestClass fooFun( TestClass t)
{
t.setValue(20);
return t;
}
int main()
{
TestClass t1(10);
fooFun(t1);
return 0;
}
2)简要说明下面程序的执行顺序以及各步骤的执行结果。
#include <iostream.h>
class A{
public:
A(int i,int j) { a=i;b=j; }
void move(int x,int y) { a+=x;b+=y; }
void show() { cout<<"("<<a<<","<<b<<")"<<endl; }
private:
int a,b;
};
class B:public A{
public:
B(int i,int j,int k,int l):A(i,j),x(k),y(l){}
void show() { cout<<x<<","<<y<<endl; }
void fun() { move(3,5); }
void f1() { A::show(); }
private:
int x,y;
};
void main()
{ A aa(1,2);
aa.show();
B bb(3,4,5,6);
bb.fun();
bb.A::show();
bb.B::show();
}
展开
 我来答
ylgaoyifan
2013-05-05 · TA获得超过1156个赞
知道小有建树答主
回答量:354
采纳率:0%
帮助的人:395万
展开全部
第一题:
Value: 10, Constructed!
Value: 10, Copy Constructed!
Value: 20, Copy Constructed!
Value: 20, Destructed!
Value: 20, Destructed!
Value: 10, Destructed!
分析:本题主要考察构造函数和析构函数的特点,以及函数参数传递的特点。

先分析每一行的输出原因:
第一行:main函数,创建了对象t1,调用构造TestClass( int newValue )
第二行:fooFun函数,创建实参t (传递值),调用构造TestClass( const TestClass & rhs)
第三行:fooFun函数,创建返回值,调用构造TestClass( const TestClass & rhs)
第四行:fooFun函数,销毁实参t
第五行:main函数,销毁fooFun函数的返回值
第六行:main函数,销毁t1

第二题:
(1,2)
(6,9)
5,6

这题比较简单,下面解释每一行输出的内容是怎么来的。
第一行:不解释了
第二行:
B bb(3,4,5,6);这句使得a=3 b=4
bb.fun();这句调用了成员函数move(3,5)。效果:a=a+3 b=b+5
bb.A::show();这句调用了基类A的show函数,输出了a,b的值
第三行:
bb.B::show();这句调用派生类B的show函数,输出x,y的值
缪立军
2013-05-05 · TA获得超过384个赞
知道小有建树答主
回答量:257
采纳率:100%
帮助的人:172万
展开全部
2)
A aa(1,2); //调用类A的构造函数给变量a,b赋值,此时a=1,b=2,此步屏幕无输出;
aa.show(); //调用类成员函数,此步屏幕输出为:
(1,2) //换行
B bb(3,4,5,6); //类B的构造函数指定了类A的构造函数,先调用类A的构造函数给成员a,b赋值,此时a=3,b=4,然后执行类B构造函数给x,y赋值,此时x=5,y=6,此步屏幕无输出;
bb.fun(); //调用基类A的move函数计算成员a,b的值,此时a=6,b=9;
bb.A::show(); //调用基类A的成员函数show,此步屏幕输出为:
(6,9) //换行
bb.B::show(); ////调用类B的成员函数show,此步屏幕输出为:
5,6 //换行
追问
也谢谢你啊!!!太感动了~!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式