C++中关于一个构造函数的问题 在线等

150.假定一个类的构造函数为“B(intax,intbx):a(ax),b(bx){}”,执行“Bx(1,2),y(3,4);x=y;”语句序列后x.a的值为()。A.... 150.假定一个类的构造函数为 “B(int ax, int bx): a(ax), b(bx) {}”,执行 “B x(1,2),y(3,4);x=y;”语句序列后x.a的值为( )。
A. 1 B. 2 C. 3 D. 4
展开
 我来答
Fetion_Star
2011-04-30 · 超过10用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:30.6万
展开全部
这是一个简单复制的问题,执行x=y;后,x的数据成员与y的相同,即x.a=3,x.b=4;下面是一个测试程序,你可以运行看看:
#include<iostream>
using namespace std;

class B{

public:
int a;
int b;

B(int ax,int bx):a(ax),b(bx){};
};

int main(){

B x(1,2),y(3,4);

x=y;

cout <<x.a <<endl;

return 0;
}
追问
其实a b是两个内嵌对象么?
如果B中还有函数MAX()
那是不是可以B.a.MAX()啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
释竹阳花
2011-04-30 · TA获得超过2902个赞
知道小有建树答主
回答量:837
采纳率:0%
帮助的人:888万
展开全部
构造函数只在定义对象时调用;
执行对象x时 ,x.a=1,
执行对象y时,y.a=3,;
执行x=y时,x.a=y.a=3.
最终x.a=3
#include<iostream>
using namespace std;
class B
{
private:
int a,b;
public:
B(int ax, int bx):a(ax),b(bx) { } //这里是参数初始化列表。相当于{a=ax;b=bx;}
void show()
{
cout<<"a="<<a<<endl;
}
};
int main()
{
B x(1,2),y(3,4);
x=y;
x.show();
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xx8833
2011-04-30 · TA获得超过1629个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:512万
展开全部
B(int ax, int bx): a(ax), b(bx)
等同于
B(int ax, int bx)
{
a=ax;
b=bx;
}
一般冒号还能用来调用基类的构造函数
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rongkang2
2011-04-30 · TA获得超过518个赞
知道小有建树答主
回答量:320
采纳率:0%
帮助的人:238万
展开全部
C,3

我试验过
追问
能详细解释下么?
前面的a(ax)b(bx)是不是内嵌对象啊?
那后面的语句什么意思怎么执行的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式